여기 참조

단순 인덱싱을 넘어서는 고급 인덱싱의 한 형태로, 검색어를 통한 indirect 인덱싱형태로 다른 정보들을 가져올때 사용한다.

즉, 검색어를 일종의 포인터 삼아서 다른곳에서 값들을 가져오는것.

 

주요포인트

  • 키워드에 대해서 문서범위를 넘어서는 글로벌 범위에서 가중치를 부여하는게 아님(문서 내 가중치)
  • 반환되는 문서의 개수나 종류는 키워드 매칭에 기반하고, payload는 순서나 가중치에만 영향을 줄 수 있음
  • 주로 색인시 할당되며, 정적인 정보를 처리한다. 실시간 처리에는 다른 방식이 권장된다.

 

예시: 뉴스검색

1. Payload를 사용하지 않는 경우 (단순 인덱싱)
검색 쿼리: 사용자가 "블록체인"이라는 키워드로 뉴스 기사를 검색합니다.
인덱싱: 모든 기사에서 "블록체인"이라는 키워드를 포함하는 부분을 색인합니다. 색인은 키워드의 존재 여부에 초점을 맞춥니다.
검색 결과: "블록체인" 키워드를 포함하는 모든 기사가 결과로 반환됩니다. 결과는 키워드의 빈도수나 기사의 일반적인 인기도에 따라 정렬됩니다.
결과의 특징: 반환된 기사들은 "블록체인"이라는 키워드를 포함한다는 공통점이 있지만, 키워드의 위치나 문서 내의 중요도에 따른 차별화된 가중치는 고려되지 않습니다.

 

2. Payload를 사용하는 경우 (고급 인덱싱)
검색 쿼리: 동일하게 사용자가 "블록체인"이라는 키워드로 뉴스 기사를 검색합니다.
인덱싱과 Payload: 기사 내에서 "블록체인" 키워드가 나타나는 위치(예: 제목, 첫 문단, 본문)에 따라 다른 payload 값을 부여합니다. 제목에 나타날 경우 높은 가중치를, 본문에만 나타날 경우 낮은 가중치를 부여합니다.
검색 결과와 Payload 활용: 검색 결과는 "블록체인" 키워드를 포함하지만, payload 값을 기반으로 정렬됩니다. 이를 통해 제목에 "블록체인"을 포함한 기사가 본문에만 해당 키워드가 있는 기사보다 더 높은 순위에 배치됩니다.
결과의 특징: 검색 결과는 단순히 키워드의 존재 여부를 넘어서, 키워드의 위치와 문서 내 중요도에 따라 세밀하게 조정됩니다. 사용자는 주제에 대해 더 중요하고 관련성 높은 기사를 우선적으로 볼 수 있습니다.

 

결론
Payload를 사용하지 않는 경우, 검색 결과는 단순히 키워드의 존재와 빈도에 의존합니다. 반면, payload를 사용하는 경우,

검색 결과의 순위나 가중치가 키워드의 문서 내 위치와 맥락에 따라 조정되어 사용자에게 더 관련성 높은 정보를 제공합니다.



 

 

반응형

'Programming > Data Engineering' 카테고리의 다른 글

Solr - Facet  (0) 2024.01.13

영단어 Facet은 보석세공후 한 단면을 의미. Solr에서는 여기서 하나의 측면이라는 의미를 따 왔다.

페이싯 기능은 통계적 정보를 검색결과에 추가한다고 이야기할 수 있으며, 사용자가 대량의 데이터 속에서 필요한 정보를 빠르고 정확하게 찾을 수 있도록 도와주는 강력한 도구로 활용될수 있다.

 

 

솔라검색 예시

검색: http://localhost:8983/solr/컬렉션명/select?q=과학&facet=true&facet.field=장르

출력:

{
  "responseHeader":{
    "status":0,
    "QTime":10
  },
  "response":{"numFound":123,"start":0,"docs":[
      {
        "제목":"천체물리학 입문",
        "저자":"스티븐 호킹",
        "장르":"천문학",
        "가격":20000
        // 기타 도서 정보
      },
      // 검색된 다른 책들의 정보
    ]
  },
  "facet_counts":{
    "facet_fields":{
      "장르":[
        "천문학", 34,
        "생물학", 29,
        "물리학", 20,
        "지질학", 10,
        // 기타 장르 및 해당 장르의 책 개수
      ]
    }
  }
}

위에서 facet_counts부분이 facet과 관련되어 추가된 부분이다.

 

가격관련 facet예시

검색: http://localhost:8983/solr/컬렉션명/select?q=노트북&facet=true&facet.range=가격&facet.range.start=0&facet.range.end=2000000&facet.range.gap=500000

q=노트북: "노트북"이라는 키워드로 검색합니다.
facet=true: 페이싯 기능을 활성화합니다.
facet.range=가격: "가격" 필드를 기준으로 범위 페이싯을 적용합니다.
facet.range.start=0: 가격 범위의 시작을 0원으로 설정합니다.
facet.range.end=2000000: 가격 범위의 끝을 2,000,000원으로 설정합니다.
facet.range.gap=500000: 가격 범위의 간격을 500,000원으로 설정합니다.

 

출력:

{
  "responseHeader":{
    "status":0,
    "QTime":15
  },
  "response":{"numFound":250,"start":0,"docs":[
      {
        "제품명":"모델 A 노트북",
        "브랜드":"브랜드X",
        "가격":1500000
        // 기타 제품 정보
      },
      // 검색된 다른 노트북들의 정보
    ]
  },
  "facet_counts":{
    "facet_ranges":{
      "가격":{
        "counts":[
          "0-500000", 25,
          "500000-1000000", 75,
          "1000000-1500000", 100,
          "1500000-2000000", 50
        ]
      }
    }
  }
}

 

 

반응형

'Programming > Data Engineering' 카테고리의 다른 글

Solr - payload  (0) 2024.01.16

+ Recent posts