我有一個行爲意外的SOLR搜索。當我進入SOLR管理並運行以下搜索時,出現奇怪的行爲(請注意,myField__s
只有2個可能的值,MyValue1
和MyValue2
)。SOLR/Lucene方面查詢 - OR和NOT
// 13,461 found - Good
fq:
// 9,168 found - Good
fq: myField__s:"MyValue1"
// 4,293 found - Good
fq: NOT myField__s:"MyValue1"
// 0 found - Bad, expected 13,461
fq: myField__s:"MyValue1" OR NOT myField__s:"MyValue1"
// 9,168 found - Good
fq: myField__s:"MyValue1" OR NOT myField__s:"MyValue2"
// 9,168 found - Bad, expected 13,461
fq: myField__s:"MyValue1" OR (NOT myField__s:"MyValue1")
我覺得我有一些很大的東西我失蹤fq語法。任何人都可以提供指導嗎?
你最後的結果有點出人意料對我來說。我曾想過Solr處理這種情況。仍然,[這個答案](http://stackoverflow.com/questions/17221736/whats-wrong-with-this-solr-range-filter-query/17225534#17225534)可能會指出你在正確的方向,爲什麼不是Solr中的查詢可能有點難以預測。 – femtoRgon
我想我明白了,但是'(myField__s:「MyValue1」)OR(NOT(myField__s:「MyValue1」))'通過SOLR轉換爲'myField__s:MyValue1(-myField__s:MyValue1)'。閱讀事情和你發佈的答案讓我覺得這應該起作用。 2個「主要」組件沒有+或 - 所以它們應該是一個應該的。內部部分應該採取整套和刪除任何匹配「MyValue1」。那麼這兩個SHOULDs應該整合在一起。沒有? –
是的,這對我來說也是令人驚訝的。如果您手動添加全部匹配,您可能會有一些運氣。例如:myField__s:MyValue1(*:* -myField__s:MyValue1)' – femtoRgon