0

私のsolrインデックスには、部門という名前のフィールドを持つドキュメントが含まれています。このフィールドは、複数値の必須ではない int フィールドです。結果が以下の結合でなければならないクエリを作成したい

  • 現場部門を含まないすべての文書
  • フィールド department を含むすべてのドキュメントですが、フィールドの値は選択されたいくつかに制限されています。

次のようなクエリを作成してみました。

-department:* OR (department:* AND department:(100 OR 200))

これは結果を返しません。一方、私がちょうど使用する場合

-department:* 

また

department:* AND department:(100 OR 200)

、クエリはうまくいくようです。要するに、このコンテキストでの OR 句の動作を理解するのに苦労しています。ポインタはありますか?

4

2 に答える 2

2

SolrQuerySyntax のチェックアウト

純粋な否定的なクエリ:-

-field:[* TO *] フィールドの値のないすべてのドキュメントを検索します

あなたが試すことができます :-

q=-部門:[* TO *] OR 部門:(100 OR 200)

于 2012-12-26T03:40:17.013 に答える
0

あなたが望むことを達成するために、私はあなたがSolrグループ化を使うことができると思います。

あなたは次のようなものを与えることができます、

&q=*&group=true&group.query=department:[100]&group.query=department:[200]&group.query=-department:[*]
于 2012-12-28T14:49:09.180 に答える