핵심 정리
Solr payload는 단순 키워드 매칭을 넘어 문서 안의 특정 term 위치에 추가 정보를 붙여 scoring이나 정렬에 활용하는 고급 색인 방식입니다. 전역 키워드 가중치가 아니라 문서 내 term 단위 정보라는 점을 구분해야 합니다.
- Payload는 색인 시점에 term과 함께 저장되는 부가 정보입니다.
- 검색어를 포인터처럼 사용해 문서 안의 특정 term 관련 값을 참조할 수 있습니다.
- Payload는 어떤 문서가 매칭되는지를 완전히 바꾸기보다 점수와 순서에 영향을 주는 용도로 쓰입니다.
- 대부분 정적 정보에 어울리며 실시간으로 자주 바뀌는 값에는 다른 설계를 고려해야 합니다.
- 기본 facet이나 filter query보다 훨씬 특수한 검색 랭킹 요구가 있을 때 검토하는 기능입니다.
Payload를 볼 때는 검색 결과 필터링 기능이 아니라 term 단위 scoring 보정 기능으로 이해하는 편이 안전합니다. 단순 검색 집계가 목적이면 facet을 먼저 보고, 문서 안 term별 가중치가 필요할 때 payload를 검토하면 됩니다.
이어서 볼 글
- Solr Facet 사용법: facet.field와 facet.range 검색 예제 - Solr 검색 결과를 필드와 범위별로 집계하는 기본 기능을 먼저 확인할 수 있다.
여기 참조
단순 인덱싱을 넘어서는 고급 인덱싱의 한 형태로, 검색어를 통한 indirect 인덱싱형태로 다른 정보들을 가져올때 사용한다.
즉, 검색어를 일종의 포인터 삼아서 다른곳에서 값들을 가져오는것.
주요포인트
- 키워드에 대해서 문서범위를 넘어서는 글로벌 범위에서 가중치를 부여하는게 아님(문서 내 가중치)
- 반환되는 문서의 개수나 종류는 키워드 매칭에 기반하고, payload는 순서나 가중치에만 영향을 줄 수 있음
- 주로 색인시 할당되며, 정적인 정보를 처리한다. 실시간 처리에는 다른 방식이 권장된다.
예시: 뉴스검색
1. Payload를 사용하지 않는 경우 (단순 인덱싱)
검색 쿼리: 사용자가 "블록체인"이라는 키워드로 뉴스 기사를 검색합니다.
인덱싱: 모든 기사에서 "블록체인"이라는 키워드를 포함하는 부분을 색인합니다. 색인은 키워드의 존재 여부에 초점을 맞춥니다.
검색 결과: "블록체인" 키워드를 포함하는 모든 기사가 결과로 반환됩니다. 결과는 키워드의 빈도수나 기사의 일반적인 인기도에 따라 정렬됩니다.
결과의 특징: 반환된 기사들은 "블록체인"이라는 키워드를 포함한다는 공통점이 있지만, 키워드의 위치나 문서 내의 중요도에 따른 차별화된 가중치는 고려되지 않습니다.
2. Payload를 사용하는 경우 (고급 인덱싱)
검색 쿼리: 동일하게 사용자가 "블록체인"이라는 키워드로 뉴스 기사를 검색합니다.
인덱싱과 Payload: 기사 내에서 "블록체인" 키워드가 나타나는 위치(예: 제목, 첫 문단, 본문)에 따라 다른 payload 값을 부여합니다. 제목에 나타날 경우 높은 가중치를, 본문에만 나타날 경우 낮은 가중치를 부여합니다.
검색 결과와 Payload 활용: 검색 결과는 "블록체인" 키워드를 포함하지만, payload 값을 기반으로 정렬됩니다. 이를 통해 제목에 "블록체인"을 포함한 기사가 본문에만 해당 키워드가 있는 기사보다 더 높은 순위에 배치됩니다.
결과의 특징: 검색 결과는 단순히 키워드의 존재 여부를 넘어서, 키워드의 위치와 문서 내 중요도에 따라 세밀하게 조정됩니다. 사용자는 주제에 대해 더 중요하고 관련성 높은 기사를 우선적으로 볼 수 있습니다.
결론
Payload를 사용하지 않는 경우, 검색 결과는 단순히 키워드의 존재와 빈도에 의존합니다. 반면, payload를 사용하는 경우,
검색 결과의 순위나 가중치가 키워드의 문서 내 위치와 맥락에 따라 조정되어 사용자에게 더 관련성 높은 정보를 제공합니다.
'Programming > Data Engineering' 카테고리의 다른 글
| Solr Facet 사용법: facet.field와 facet.range 검색 예제 (0) | 2024.01.13 |
|---|
