영단어 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 |
---|