Back-End/Solr

[Solr] 검색엔진 쿼리 문법 – 핵심 파라미터와 필터 이해하기

집탱구리 2025. 7. 2. 13:26
반응형

 

검색엔진을 다루는 사람이라면 한 번쯤은 들어봤을 Apache Solr(아파치 솔라).

막상 써보려면 다양한 파라미터와 문법 때문에 어렵게 느껴지기도 한다.
이번 글에서는 Solr 쿼리의 기초 문법자주 쓰는 파라미터들, 그리고 헷갈리기 쉬운 fq, qf, q.op까지 깔끔하게 정리한다.


1. 꼭 알아야 할 주요 파라미터 7가지

파라미터 설명  예시
q 검색어 입력 q=title:AI
fl 출력할 필드 설정 fl=title,score
start, rows 페이징 처리 start=0&rows=10
sort 정렬 기준 sort=score desc
fq 필터 쿼리 fq=category:tech
defType 쿼리 파서 설정 defType=edismax
qf 검색 필드와 가중치 설정 qf=title^5 content^2

2. 추가로 알아두면 좋은 설정 파라미터

파라미터 설명 예시
wt 검색 결과 반환 형식 wt=json, wt=xml
indent 결과를 들여쓰기해 보기 좋게 출력 indent=true
q.op 기본 연산자 설정 (AND 또는 OR) q.op=AND

 

  • wt=json : 결과를 JSON 형식으로 반환 (기본값)
  • indent=true : JSON이나 XML을 사람이 보기 좋게 들여쓰기
  • q.op=AND : 여러 단어를 모두 포함한 문서만 검색

3. fq 파라미터 완전 이해하기

fq는 Filter Query의 약자이며, 검색 결과를 좁히는 추가 필터 역할을 한다.

q=title:AI&fq=category:tech

→ 제목에 "AI"가 포함되면서 category가 "tech"인 문서만 결과에 포함된다.

 

특징

  • 점수(score)에는 영향을 주지 않음
  • 캐싱이 가능해 성능이 향상됨
  • 여러 개 중첩 사용 가능

제외 조건도 가능

fq=-status:deleted fq=-author:"홍길동"

 

쿼리 의미
-status:deleted 삭제된 문서 제외
-field:* 해당 필드가 존재하는 문서 제외
-category:[* TO *] 카테고리가 존재하는 문서 제외

4. qf 파라미터 완전 이해하기

qf는 Query Fields의 약자이며, 검색어를 어떤 필드에 적용할지중요도를 어떻게 설정할지 지정한다.

edismax 또는 dismax 파서에서만 유효하다.

q=AI 패권&defType=edismax&qf=title^10 content^3 summary
  • title^10 : title 필드에 높은 중요도
  • content^3 : 중간 중요도
  • summary : 기본 가중치 (1)

^숫자가중치(Boost) 이며, 검색어가 어떤 필드에 포함되었는지를 기준으로 검색 결과의 점수(score)에 영향을 준다.


5. 연산자 제대로 이해하기: AND / OR / NOT

연산자 의미 예시
AND 모든 단어 포함 q=AI AND 패권
OR 둘 중 하나 포함 (기본값) q=AI OR 패권
NOT, - 특정 단어 제외 q=AI NOT 패권, q=AI -패권

또는 q.op으로 기본 연산자를 지정할 수 있다.

 

q=AI 패권&q.op=AND

→ "AI"와 "패권" 둘 다 포함한 문서만 검색

반응형