これを解決するための最後のオプションは、StackOverflow に問い合わせることでした。
Solr クエリを作成して、フィールドの 1 つに特定の値を持つドキュメント、または値を持たないドキュメントを取得しようとしています...
理論的には、このクエリは機能するはずでした。
ここにいくつかの情報があります:
クエリ: (名前: ジョン) --> 結果カウント: 15383 //ジョンズ
クエリ: (名前: {* TO *}) --> 結果数: 61013 //名前のある人
Query: -(name: {* TO *}) --> Result count: 216888 //名前のない人
ここで、OR 演算子を使用して同じクエリで最初と 3 番目のクエリを使用すると、(216888 + 15383) の結果が得られると予想されます。ただし、SOLR は 15383 の結果を返し、3 番目のクエリの影響を単純に無視します。
クエリ: +((name:john) (-(name:{* TO *}))) //これは私が使用したクエリです。
これは Solr のバグですか、それともクエリで間違っていますか? 2 つのクエリ結果をマージすることは追加の解決策ですが、単純なクエリで実行できるのであれば、余分なコードの実装はしたくありません。
どんな助けでも大歓迎です。