這兩天碰到solr的一個bug,在括號中使用非表達式,造成沒有任何結果命中:
檢索到這個已經有人提bug了,https://issues.apache.org/jira/browse/SOLR-2209
Indexed documents:
id: 1, UserId: 0, AccountId: 1
id: 2, UserId: 0, AccountId: 1
id: 3, UserId: 1, AccountId: 1
id: 4, UserId: 2, AccountId: 1
id: 5, UserId: 3, AccountId: 1
正確的Query:
account_id: 1 AND -user_id: 0
正確的Results:
Document Ids: 3, 4, 5
異常的Query:
account_id: 1 AND ( -user_id: 0 )
異常的Results:
--No matched documents –
官方現在還沒有解決這個問題,不過可以採取*:*的辦法暫時避免這個問題,上面的Query改造爲:
account_id:1 AND (*:* -user_id:0) 這樣就能正常查詢出結果了。
期待官方對這個bug的原因進行深入說明,偶爾碰到這種無厘頭的問題也挺鬱悶的。