본문 바로가기
개발/ALGOLIA

알고리아 Managing Results(3-8)

by dev_caleb 2022. 3. 3.
728x90

Boosting or Penalizing Records

https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/boost-or-penalize-some-records/

 

Boosting or penalizing records | Algolia

How to boost or penalize a subset of records in the search results.

www.algolia.com

 

In order to boost a subset of results, we will need an attribute in the record specifying if the record should to be boosted or not. 결과의 하위 집합을 증가시키기 위해서는 레코드의 증가 여부를 지정하는 속성이 필요합니다.

Dataset#

Here’s a sample dataset to help illustrate this concept:

다음은 이 개념을 설명하는 데 도움이 되는 샘플 데이터 세트입니다.
 
[
  {
    "name": "Apricot",
    "boosted": false
  },
  {
    "name": "Apple",
    "boosted": false
  },
  {
    "name": "Almonds",
    "boosted": true
  }
]
 

As you can see we defined a boosted attribute to tell whether the record should or should not be boosted.

The full dataset can be downloaded here. For more information on indexing data, see our importing tutorial

보시다시피 레코드를 올려야 하는지 말아야 하는지 여부를 구분하기 위해 향상된 속성을 정의했습니다.
여기에서 전체 데이터 세트를 다운로드할 수 있습니다. 데이터 인덱싱에 대한 자세한 내용은 가져오기 자습서를 참조하십시오.
 
 

Data types of the boosted attribute#

Attributes for boosting need to be either a boolean or numeric value.(부스팅 속성은 부울 값 또는 숫자 값이어야 합니다.)

 

Update the custom ranking

The last criterion of Algolia’s ranking formula is customRanking. It allows you to define a list of attributes used to rank the results in the case of textual relevance equality.

In our case we want to boost featured fruits. To accomplish this, we will need to add the boostedattribute to the custom ranking. There are two methods to do this:

알골리아 랭킹 공식의 마지막 기준은 customRanking이다. 텍스트 관련성이 동일한 경우 결과의 순위를 매기는 데 사용되는 속성 목록을 정의할 수 있습니다.

우리의 경우 특색 있는 과일을 늘리고 싶습니다. 이를 달성하기 위해서는 커스텀 랭킹에 기여도를 높여야 합니다. 이 작업을 수행하는 두 가지 방법이 있습니다.

 

Using the dashboard#

On the ranking tab of the explorer we can add a new custom ranking attribute.

탐색기의 순위 탭에서 새로운 사용자 지정 순위 특성을 추가할 수 있습니다.

Using the API

index.setSettings({
  customRanking: ['desc(boosted)']
}).then(() => {
  // done
});

When your boosted attribute is a boolean data type, ensure you have set the order of the custom ranking attribute to descending.

부스트 속성이 부울 데이터 유형인 경우 사용자 지정 순위 속성의 순서를 내림차순으로 설정했는지 확인하십시오.

 

More granular boosts(보다 세분화된 boosts)

Now that the customRanking is set, querying a will return “almonds” first, as it matches both textually AND is a featured record.

If more granularity is necessary, a similar method can be used. Instead of a boolean attribute, you will need to specify a numeric attribute that maps to a boosted “level”.

In this case, our dataset might look like this:

customRanking이 설정되었으므로 a를 쿼리하면 AND가 텍스트로 일치하므로 "경고"가 먼저 반환됩니다.
좀 더 세분화가 필요한 경우 유사한 방법을 사용할 수 있다. 부울 특성 대신 부스트된 "level"에 매핑되는 숫자 속성을 지정해야 합니다.
이 경우 데이터 세트는 다음과 같을 수 있습니다.

 

[
  {
    "name": "Apricot",
    "boosted": 0
  },
  {
    "name": "Apple",
    "boosted": 4
  },
  {
    "name": "Almonds",
    "boosted": 1
  }
]

We don’t have to update the customRanking as it’s already set to rank by the boosted attribute in descending order.

In this example, if we query a it will return “apple” first because it has the highest boosted value.

customRanking은 이미 내림차순으로 상승 특성별로 순위가 설정되어 있기 때문에 업데이트할 필요가 없습니다.
이 예에서 a를 쿼리하면 "apple"이 먼저 반환되는데, 이는 가장 높은 boosted 값을 가지기 때문이다.

Boosting or Bucketing Groups of Items with Sorting(정렬을 사용하여 항목 그룹 부스팅 또는 버킷링)

You can also shift the order of the logic and put an attribute above the ranking formula. This has the effect of sorting in the classic sense: The attribute sorts the results first before applying any ranking formula. We discuss sorting elsewhere, but it’s worth looking at how sorting can be used to boost items.

또한 논리 순서를 전환하고 순위 공식 위에 속성을 추가할 수 있습니다. 이것은 고전적인 의미에서 정렬하는 효과가 있습니다. 속성은 순위 공식을 적용하기 전에 결과를 먼저 정렬합니다. 다른 곳에서 분류에 대해 논의하지만, 어떻게 정렬을 사용하여 항목을 늘릴 수 있는지 살펴볼 필요가 있습니다.

 

Sometimes you may want your results to appear in groups, or buckets - say 3 buckets of prices: high-priced, medium-priced, low-priced. To do this, you’ll need to first sort the results into 3 groups, and then apply the ranking strategy for each group individually. You can use an attribute with numbers 1, 2, and 3, which will be used for the 3 groups, and then Algolia will tie-break all 1s first, then 2s, then 3s. To do this, you’ll use the Sort-By feature (not custom ranking), which occurs before, not after, the tie-breaking.

결과가 그룹 또는 버킷으로 표시되도록 할 수 있습니다(예: 고가, 중가, 저가). 그러기 위해서는 먼저 결과를 3개 그룹으로 분류한 다음 그룹별로 순위 전략을 개별적으로 적용해야 합니다. 숫자 1, 2, 3의 속성을 사용할 수 있는데, 이는 3개의 그룹에 사용될 것이고, 그 다음 알골리아는 먼저 1, 2, 3을 모두 타이브레이크합니다. 이렇게 하려면 타이 구분 이후가 아니라 앞에 발생하는 정렬 기준 기능(사용자 정의 순위가 아님)을 사용합니다.

 

 
 

 

728x90

'개발 > ALGOLIA' 카테고리의 다른 글

알고리아 Managing Results(3-10)  (0) 2022.03.03
알고리아 Managing Results(3-9)  (0) 2022.03.03
알고리아 Managing Results(3-7)  (0) 2022.03.03
알고리아 Managing Results(3-6)  (0) 2022.03.03
알고리아 Managing Results(3-5)  (0) 2022.03.03