0

私の Solr サーバーは、さまざまなテキスト フィールド (イベント名、説明、キーワードなど) と、もちろん開始日と終了日を含むイベントを参照します。

次のクエリを起動すると:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire&wt=json

28 個のイベントを取得しましたが、そのすべてに、インデックス付きテキスト フィールドの 1 つに「foire」という単語が含まれています。

しかし、次のクエリを起動すると:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire%20%2BdateFin:[NOW%20TO%20*]&wt=json

100 個のイベント (「dateFin」はフランス語で「endDate」を意味します) を取得します。すべてのイベントの終了日は今日または今日以降ですが、インデックス付きテキスト フィールドの 1 つに「foire」という単語が含まれているわけではありません。

「foire」という単語を含み、かつ終了日が今日以降のイベントのみを取得するには、どうすれば 2 つの基準を組み合わせることができますか?

4

1 に答える 1

2

solr のデフォルトのクエリ演算子は OR です。次のいずれかを実行して、期待どおりの AND 動作を得ることができます。

  • &q.op=ANDリクエストに追加
  • 検索語の前にa を配置して+、Solr に両方を含めるように指示します。
  • finDate をフィルター クエリとして使用します。

SolrQuerySyntaxページから詳細を取得できます。

于 2013-05-21T17:02:14.350 に答える