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

Optimizing search with LTR

원문 보기 위키 갱신

출처: 문서

본문

LTR로 검색 최적화하기

모델을 훈련한 후에는 sltr 쿼리를 사용하여 실행할 수 있어요. 하지만 전체 인덱스에서 직접 쿼리를 실행하는 것은 CPU 집약적일 수 있고 OpenSearch 클러스터의 성능에 영향을 줄 수 있으므로 권장하지 않아요. 이 쿼리를 사용하면 훈련된 모델을 검색 결과에 적용할 수 있어요. 다음 예제에서 확인할 수 있어요:

    POST tmdb/_search
    {
        "query": {
            "sltr": {
                    "params": {
                        "keywords": "rambo"
                    },
                    "model": "my_model"
                }
        }
    }

{% include copy-curl.html %}

상위 N개 재점수화

모델을 더 효율적으로 실행하려면 기본 제공 재점수 기능을 사용하여 기준 관련성 쿼리의 상위 N개 결과에 모델을 적용할 수 있어요. 다음 예제 쿼리에서 확인할 수 있어요:

    POST tmdb/_search
    {
        "query": {
            "match": {
                "_all": "rambo"
            }
        },
        "rescore": {
            "window_size": 1000,
            "query": {
                "rescore_query": {
                    "sltr": {
                        "params": {
                            "keywords": "rambo"
                        },
                        "model": "my_model"
                    }
                }
            }
        }
    }

{% include copy-curl.html %}

먼저 rambo라는 용어에 대해 match 쿼리가 실행되고, 그런 다음 my_model이 상위 1,000개 결과에 적용돼요. 이 기준 쿼리는 초기 결과 집합을 생성하는 데 사용되며, 그 결과는 기본 유사도 BM25 확률적 순위 프레임워크를 사용하여 점수가 매겨져 관련성 점수를 계산해요.

기능 하위 집합 재점수화

다음 예제와 같이 sltr 쿼리에서 active_features를 지정하여 기능의 하위 집합을 선택적으로 점수화할 수 있어요. 이렇게 하면 모델의 점수화를 선택한 기능에 집중할 수 있으며, 지정되지 않은 기능은 누락된 것으로 표시돼요. active_features와 관련된 params만 지정하면 돼요. 할당된 기능 집합에 없는 기능 이름을 요청하면 쿼리에서 오류가 발생해요.

    POST tmdb/_search
    {
        "query": {
            "match": {
                "_all": "rambo"
            }
        },
        "rescore": {
            "window_size": 1000,
            "query": {
                "rescore_query": {
                    "sltr": {
                        "params": {
                            "keywords": "rambo"
                        },
                        "model": "my_model",
                        "active_features": ["title_query"]
                    }
                }
            }
        }
    }

{% include copy-curl.html %}

my_model 모델이 적용되지만 title_query 기능만 점수화해요.

sltr을 다른 OpenSearch 기능과 결합하기

sltr 쿼리는 다음 OpenSearch 기능 및 기능과 통합하여 결과에 모델을 적용하는 것 이상의 정교하고 맞춤화된 검색 솔루션을 만들 수 있어요:

  • 모델을 적용하기 전에 OpenSearch 필터를 사용하여 비즈니스 규칙에 따라 결과를 필터링하기
  • 여러 재점수를 연결하여 결과의 관련성을 개선하기
  • 한 번은 sltr로 관련성을 처리하고 두 번째는 비즈니스 문제를 위해 재점수하기
  • 기준 쿼리에서 관련성이 있지만 품질이 낮은 콘텐츠의 가중치를 낮춰 재점수되지 않도록 하기

다음 단계

고급 기능에 대해 알아보세요.

더 알아보기 (Learn more)