2012-09-15 3 views
0

Windows 컴퓨터에서 apache-solr-3.6.0으로 작업하고 있습니다. 특정 단어 수만큼 떨어져있는 두 단어를 검색하고 싶습니다 (이 숫자 이상). 예 : 다음 문구를 고려하여 Daisy & 시험을 2 단어 이상 따로 검색하고 싶습니다.Solr - 정확히 일치하는 단어 수를 사용하는 근접 검색

Daisy has exam. 
Daisy has an exam. 
Daisy has a math exam. 
Daisy has a difficult math exam. 

그런 것을 검색 한 결과 Term Proximity를 사용해 보았습니다.

http://localhost:8983/solr/select/?q="Daisy exam"~2&version=2.2&start=0&rows=10&indent=on&debugQuery=true 

나는 문구해야 필요 결과 : Daisy has an exam. 그러나 위의 기준을 사용하여, 그 결과는 지난 3 구였다.

정확히 일치하는 단어를 사용하는 아이디어가 있습니까?

답변

0

체크 아웃 여기에 관련된 질문 : 당신은 '더 2 개 이상의 단어를 따로 따로'말할 Solr proximity ordered vs unordered

는, 당신은 모두 제 1 및 제 2 구가 일치해야한다. 그러면 검색어는 "Daisy exam"~1이고 데이지 시험과 그 사이에 삽입됩니다 (하나의 변경 : exam 위치가 2에서 3으로 변경됨).

일치하는 결과에서 "데이지 시험"을 방지하기 위해 -"Daisy exam"을 쿼리에 추가 할 수 있습니다. 또는 쿼리 문자열 params에 fq=-"Daisy exam"을 추가 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 결과는 '데이지가 시험을 보았습니다.'하고 사용하고 '~ 1'을 사용하면 그 결과를 얻지 못할 것입니다. '~ 2 '를 사용해도 "Daisy exam"이라는 문구가있는 것처럼 정확한 결과를 얻을 수 없습니다. 포함될 것입니다. 그리고 이것은 내가 원하는 것이 아닙니다. 어떤 아이디어? – Daisy

+0

'q ~ x'는 x보다 작거나 같은 변경을 가진 문서와 일치하기 때문에 Solr에서는 이것이 가능하지 않다고 생각합니다. BTW의 경우, "fq"에서 직접 "데이지 시험"을 제외 할 수 있습니다. – Mohsen