Solr 6.5.1 には、*_txt_en
フィールドとstring
ドキュメント タイプ フィールドがあります。これらのフィールドで、次の形式のクエリを作成したいと思います。
特定のドキュメント タイプのすべてのドキュメントに一致します。
- 特定のフレーズ (「フレーズ 1」、「フレーズ 2」) が一致するには、テキスト フィールドに含まれている必要があります。
- ただし、他のフレーズ (「フレーズ 3」、「フレーズ 4」、「フレーズ 5」) もこのフィールドにある場合は、一致しません。
私が書いた現在の Solr クエリは次のようになります。
(documenttype:references AND (field:"phrase one" OR field:"phrase two")) AND NOT field:"phrase three" AND NOT field:"phrase four" AND NOT field:"phrase five"
私が考えることができる代替案は次のとおりです。
(documenttype:references AND (field:"phrase one" OR field:"phrase two")) AND NOT (field:"phrase three" OR field:"phrase four" OR field:"phrase five")
上記のクエリは、いくつかの例のおもちゃのデータ セットで機能するようです。しかし、Solr には、いくつかの不文律があり、明らかな落とし穴ではないことがわかりました。特に、ブールクエリの一部としての否定についてはそうです。
私が説明したクエリの場合、これはそれらを形成する正しい構文ですか?