본문 바로가기
Back-End/Solr

[Solr] 검색엔진 쿼리 문법 검색 정확도 높이기 - 문장 검색, 하이라이팅, 쿼리 파서, 실전 예제

by 집탱구리 2025. 7. 2.
반응형

1. 정확한 문장 검색: Phrase & 근접 검색

Solr에서는 "큰따옴표"를 사용해 정확한 문장 일치(Phrase) 검색이 가능하다.

q=content:"동해물과 백두산이"

→ 공백과 순서를 포함하여 정확히 일치하는 문장만 검색

 

근접(Proximity) 검색도 가능하다.

q="동해물과 백두산이"~3

→ "동해물"와 "백두산"이 3단어 이내 거리에 있을 경우도 포함


2. 하이라이팅 기능 맛보기 (Highlighting)

사용자가 입력한 검색어가 문서 어디에 포함되었는지 강조 표시할 수 있다.

hl=true
hl.fl=title,content
hl.simple.pre=<em>
hl.simple.post=</em>

 

예시 결과

<em>AI</em> 패권 경쟁의 미래

3. 쿼리 파서 비교: Lucene vs dismax vs edismax

Solr는 여러 쿼리 파서를 지원하며, 사용 방식에 따라 결과가 달라진다.

파서 유형
특징 대표 옵션
lucene 기본 파서. 문법이 정교하고 세밀 AND, OR, -, 필드명 직접 지정
dismax 사용자 친화적. 단순 문장 검색에 유리 qf, pf
edismax dismax의 확장판. 가장 많이 사용됨 qf, bf, tie, mm 등

4. 실전 예제 종합

/select?q="동해물과 백두산이"&defType=edismax
&qf=title^10 content^5
&fq=category:tech -status:deleted
&hl=true&hl.fl=title&hl.simple.pre=<b>&hl.simple.post=</b>
&fl=title,score
&sort=score desc

 

설명

 

  • "동해물과 백두산이"이라는 문장을 정확히 포함한 문서 검색
  • title 필드에 높은 가중치
  • category가 tech, status가 deleted가 아닌 문서만 포함
  • title 필드 하이라이팅 적용 (태그로 강조)
  • 결과는 title, score만 출력
  • score 기준 내림차순 정렬

 

 

반응형

댓글