2017-10-26 27 views
1

나는 다음과 같은 문제가 생겼어요Spring Data Solr의 동적 쿼리에 De Morgan의 법칙을 적용 할 수있는 방법이 있습니까? 하는 가랑이 어느 (</p> <pre><code>AND (-title_facet:*title* AND -title_facet:*List*) </code></pre> <p>을 :</p> <p>SOLR이 좋아하는 내 동적으로 생성 된 기준의 일부는 부정 포함 된 경우 다음과 같이 아무것도 반환하지 않는 것 같다

AND -(title_facet:*title* OR title_facet:*List*) 
012 : 두 개의 별도 기준)이 정말 문제를 만들면서

에서 만든, 그것은 될 수 있도록 기준을 상기 드 모건의 법칙을 적용 할 수있는 방법이있다

? 그것에서 일치하는 문서를 빼기 위해 아무것도하지 않기 때문에 나는 봄 - 데이터 SOLR를 사용하고

은 1.5.4

답변

3

AND (-title_facet:*title* AND -title_facet:*List*) 작동하지 않는 이유입니다.

Solr은 모든 문서 집합을 쿼리 앞에 추가하여 단일 쿼리로 사용할 때이 문제를 해결하지만 동일한 작업을 쿼리에 추가 할 경우 현재 존재하지 않습니다.

AND (*:* AND -title_facet:*title* AND -title_facet:*List*) 

. 그러면 다른 두 세트와 일치하는 문서를 뺄 수있는 적절한 문서 세트 (모든 문서)가 있으므로 작동해야합니다.

+0

내가 게시 한 기준이 더 큰 가랑이의 일부 였을 때도 이유가 적용됩니까? 솔직히 전달할 전체 기준은 다음과 같습니다. '(createdBy_facet : * name1 * OR createdBy_facet : * name2 *) AND (-title_facet : * title * AND -title_facet : * List *) ' – Luigius

+0

예, 내 추측은 후자의 AND 부분에 필요합니다. 첫 번째 부분은 단지 긍정적 인 성냥 (즉, 문서를 선택한다는 의미)이므로 거기에는 그럴 필요가 없습니다.하지만 나중에는 문서 만 제거하기 때문에 문서를 빼기 시작해야합니다. – MatsLindh

+0

테스트 한 내용에서 제대로 작동하는 것 같습니다. 도움에 감사드립니다! – Luigius