2017-06-09 4 views
0

solrでは、デフォルトで2つのfqを渡すと、それをANDとして扱い、その代わりにorで作る方法です。例についてはSOLRでORを使って複数のfqを渡す方法

  • :FQ =学校:「SRM」& FQ =クラス:それはとしてそれを取るでしょうbydefault この条件「最初」とどのように通過させるか、または同じ条件。

ありがとう、 Subbarao。

答えて

2

のSolr 5.4以降フィルター」のためのfilter syntax in the body of main query(検索を(理解します...) ")。だから、あなたが行うことができます:

FQ =フィルタ(INSTOCK:真)フィルタを(価格:[* TO 100])

ます。また、それぞれを置くことによって、これらをより読みやすくするために、変数置換を使用することができますそれ自身の変数にフィルタリングします。

これらの興味深い概念のいくつかは、Hoss' presentation at Lucene/Solr Revolution 2016でよく説明されています。

+0

良い点 - 私は 'filter()'を忘れていました(そして、プレゼンテーションは必見です)。正しいソリューションは、さまざまなクエリがどのように相互作用するかに依存します。 – MatsLindh

0

フィルタが独立して適用されているので、あなたがORフィルタを持っているしたい場合は、単一のフィルタの内側にそれを適用する必要があります:

fq=school:"srm" OR class:"first" 
+0

代わりに、これはfq = "school"&fq = "first"のようにする必要があります。このような方法はありますか? –

+0

いいえ、私が言ったように、OR条件を使用する場合は、単一のフィルタを使用する必要があります。フィルタは結果セットをフィルタリングするために適用されます。つまり、フィルタは既存の結果が通過するものです。クエリに用語を追加するか、クエリに単一のフィルタを使用します。 – MatsLindh

+1

5.4:https://issues.apache.org/jira/browse/SOLR-7219 –

関連する問題