
SolrClient::deleteByQuery 메소드의 query 파라미터는 Solr 쿼리 언어를 사용합니다.
Solr 쿼리 언어의 기본 형식은 다음과 같습니다.
- 키워드: 단어를 찾습니다. 예를 들어, "hello"는 "hello"라는 단어를 찾습니다.
- 키워드: - 단어를 제외합니다. 예를 들어, "hello -world"는 "hello"라는 단어를 포함하고 "world"라는 단어를 제외합니다.
- 키워드: * 와일드카드를 사용하여 부분 일치를 찾습니다. 예를 들어, "hello*"는 "hello"라는 단어를 포함하는 모든 문서를 찾습니다.
- 키워드: ~ 단어를 포함하는 문서의 스코어를 증가시킵니다. 예를 들어, "hello~5"는 "hello"라는 단어를 포함하는 문서의 스코어를 5점 증가시킵니다.
- 키워드: ! 단어를 포함하는 문서의 스코어를 감소시킵니다. 예를 들어, "hello!5"는 "hello"라는 단어를 포함하는 문서의 스코어를 5점 감소시킵니다.
- 키워드: ( ) 쿼리 조건을 그룹화합니다. 예를 들어, "(hello world)"는 "hello"라는 단어와 "world"라는 단어를 모두 포함하는 문서를 찾습니다.
- 키워드: | 쿼리 조건을 OR 연산으로 결합합니다. 예를 들어, "hello | world"는 "hello"라는 단어 또는 "world"라는 단어를 포함하는 문서를 찾습니다.
- 키워드: - 쿼리 조건을 NOT 연산으로 결합합니다. 예를 들어, "hello -world"는 "hello"라는 단어를 포함하고 "world"라는 단어를 제외하는 문서를 찾습니다.
- 키워드: ~ 쿼리 조건을 부정적 스코어를 증가시키는 연산으로 결합합니다. 예를 들어, "hello~5"는 "hello"라는 단어를 포함하는 문서의 스코어를 5점 증가시킵니다.
- 키워드: ! 쿼리 조건을 부정적 스코어를 감소시키는 연산으로 결합합니다. 예를 들어, "hello!5"는 "hello"라는 단어를 포함하는 문서의 스코어를 5점 감소시킵니다.
위의 예제에서 "title:hello"는 "title"라는 필드에 "hello"라는 단어를 포함하는 문서를 찾습니다.
쿼리가 제대로 전달되는지 확인하려면, Solr 클라이언트의 로그를 확인하거나, Solr 쿼리 로그를 확인하는 방법이 있습니다.
또한, query 파라미터의 형식은 다음과 같습니다.
- 필드명: 값 (필드명에 해당하는 필드에 값이 포함된 문서를 찾습니다.)
- 필드명: - 값 (필드명에 해당하는 필드에 값이 포함된 문서를 제외합니다.)
- 필드명: * (필드명에 해당하는 필드에 값이 포함된 모든 문서를 찾습니다.)
- 필드명: ~ 값 (필드명에 해당하는 필드에 값이 포함된 문서의 스코어를 증가시킵니다.)
- 필드명: ! 값 (필드명에 해당하는 필드에 값이 포함된 문서의 스코어를 감소시킵니다.)
위의 예제에서 "title:hello"는 "title"라는 필드에 "hello"라는 단어를 포함하는 문서를 찾습니다.
2025-03-16 15:58