Solr でのフィルター クエリの場合、特定のタイプではないすべてのドキュメントと、特定のフィールドに値を持つそのタイプのすべてのドキュメントを含める必要があります。
私はこれを試しました:
fq=(-type_id:(A) OR content:(['' TO *]))
type_id
ただし、 null を持つ B、C などのドキュメントは除外されますcontent
。(type_id
はstring
フィールドであり、content
ですtext
。)
私はこの質問を見ました: NOT と OR を含む複雑な SOLR クエリと、演算子に関するこの投稿: http://robotlibrarian.billdueber.com/2011/12/solr-and-boolean-operators/。私が持っている構文は正しいはずだと思います。誰でも私のエラーを見ることができますか?
更新: LuceneQParser を使用しています。上記のフィルタ クエリを次のように解析します。
-type_id:A content:['' TO *]
コメント ( -type_id:A OR (content:[* TO *] AND type_id:A)
)で提案されているフィルター クエリを次のように解析します。
-type_id:A (+content:[* TO *] +type_id:A)
だから結果なし。