본문 바로가기
WIKI 기술 지식 베이스

Score ranker processor

원문 보기 위키 갱신

출처: 문서

본문

점수 순위 매기기 프로세서

2.19에서 도입 {: .label .label-purple }

score-ranker-processor는 검색 실행의 질의 단계와 페치 단계 사이에서 실행되는 순위 기반 검색 단계 결과 프로세서예요. 질의 단계 결과를 가로채서 상호 순위 융합(RRF) 알고리즘을 사용하여 hybrid 질의의 질의 절들을 최종 순위 검색 결과 목록으로 결합해요. RRF는 각 질의 절 결과에서 문서의 순위의 역수를 기반으로 각 문서에 점수를 매긴 다음 이 점수들을 더하므로 개별 질의 절의 관련성 점수를 비교 가능한 척도로 만들 필요가 없어요. 자세한 내용은 상호 순위 융합을 참조하세요.

요청 본문 필드

다음 표는 사용 가능한 모든 요청 필드를 나열해요.

필드 데이터 타입 설명
combination.technique String 점수 결합에 사용되는 기법이에요. 유효한 값은 rrf예요. 선택 사항이에요. 기본값은 rrf예요.
combination.rank_constant Integer 역수 점수를 계산하기 전에 각 문서의 순위에 추가되는 상수예요. 유효한 값은 [1, 10000] 범위예요. 순위 상수가 클수록 점수가 더 균일해져서 상위 순위 결과의 영향이 줄어들어요. 순위 상수가 작을수록 순위 간 점수 차이가 커져서 상위 순위 항목에 더 많은 가중치를 줘요. 선택 사항이에요. 기본값은 60이에요.
combination.parameters.weights Array of floating-point values 각 질의 절에 사용할 가중치를 지정해요. 유효한 값은 [0.0, 1.0] 범위이며 소수점 백분율을 나타내요. 가중치가 1.0에 가까울수록 질의 절에 더 많은 가중치가 부여돼요. weights 배열의 값 개수는 질의 절 개수와 같아야 해요. 배열 값의 합은 1.0이어야 해요. 선택 사항이에요. 제공되지 않으면 모든 질의 절에 동일한 가중치가 부여돼요.

예제

다음 요청은 기본 순위 상수 60과 함께 rrf 결합 기법을 사용하는 score-ranker-processor를 포함하는 검색 파이프라인을 생성해요.

PUT /_search/pipeline/rrf-pipeline
{
  "description": "Post processor for hybrid RRF search",
  "phase_results_processors": [
    {
      "score-ranker-processor": {
        "combination": {
          "technique": "rrf"
        }
      }
    }
  ]
}

{% include copy-curl.html %}

다음 요청은 rank_constant를 40으로 설정하고 각 질의 절에 사용자 정의 가중치를 적용해요. 질의 절 1의 가중치는 0.7이고 질의 절 2의 가중치는 0.3이에요.

PUT /_search/pipeline/rrf-pipeline
{
  "description": "Post processor for hybrid RRF search",
  "phase_results_processors": [
    {
      "score-ranker-processor": {
        "combination": {
          "technique": "rrf",
          "rank_constant": 40,
          "parameters": {
            "weights": [
              0.7,
              0.3
            ]
          }
        }
      }
    }
  ]
}

{% include copy-curl.html %}

파이프라인을 사용하려면 hybrid 질의가 포함된 검색 요청에 지정해요.

GET /my-nlp-index/_search?search_pipeline=rrf-pipeline
{
  "query": {
    "hybrid": {
      "queries": [
        {
          "match": {
            "passage_text": "running shoes"
          }
        },
        {
          "neural": {
            "passage_embedding": {
              "query_text": "running shoes",
              "model_id": "aVeif4oB5Vm0Tdw8zYO2",
              "k": 5
            }
          }
        }
      ]
    }
  }
}

{% include copy-curl.html %}

관련 문서

더 알아보기 (Learn more)