2014-09-03 3 views
0

검색 결과에서 일부 문서를 제외 시키려면 not in 또는 - negative 기호를 사용하여 이와 같은 ID를 쿼리를 통해 지정할 수 있습니다.Solr을 설정하여 검색 결과에서 특정 문서를 제외시키는 방법은 무엇입니까?

select/?q=*:*&fq=-id:86+-id:338 

제외 할 필요가 몇 식별자가있는 경우는 괜찮습니다,하지만 난 검색에서 제외 할 필요 ID의 수천이있는 경우 쿼리가 매우 매우 긴 것입니다. 조건부로 검색 결과에서 문서 목록을 제외해야합니다. 제외 목록 생성과 같은 solr 구성 파일을 통해 어떻게 수행 할 수 있습니까? 예를 들어 usstate가 NY, CA, VA 및 우편 번호가 3으로 끝나는 경우 검색 결과에서 문서를 제외해야합니다.

+0

새 부울 필드 "제외"를 추가하십시오. 이러한 문서의 필드를 값 true로 업데이트하십시오. & fq = -exclude : true – everreadyeddy

+0

예, 제외 할 수있는 필드가 있지만 요구 사항에이 필드를 사용하지 않도록 명시되어 있습니다. 구성을 통해이를 수행 할 수있는 방법이 있습니까? –

답변

0

QueryElevationComponent을 사용하여 특정 검색어에 대해 제외 할 문서 목록을 추가 할 수 있습니다 . 이렇게하려면 구성 파일에 언급 된 쿼리와 일치하는 검색을 수행해야합니다.

예를 들어 "usstate가있는 우편 번호가 3으로 끝나는 NY, CA, VA와 관련하여 문서를 갖고 싶지 않다"고 말한 경우 아마 그 기준을 직접 사용하면됩니다. (빠른 동작의 경우 ReverseWildcardFilterFactory을 참조하십시오).

+0

검색어 문자열에 관계없이 문서 목록을 제외해야하므로 고도가 올바르게 작동하지 않습니다. 쿼리 조건 - (usstate : (NY OR CA OR VA) 및 우편 번호 : * 3)을 쿼리 자체에 넣는 대신 solr을 사용하여 설정 파일에 넣을 수 있으므로이 조건이 모든 들어오는 쿼리에 적용됩니다. –

관련 문제