0
このフィールドに他のフィルタが定義されていない場合、特定のフィルタ値を使用するようにSolrに指示できますか?Apache Solrでデフォルトのフィルタ値を使用することはできますか?
例: フィールド年齢には、他のfq
エントリが存在しない場合は、年齢のために、デフォルトで検索> 18
このフィールドに他のフィルタが定義されていない場合、特定のフィルタ値を使用するようにSolrに指示できますか?Apache Solrでデフォルトのフィルタ値を使用することはできますか?
例: フィールド年齢には、他のfq
エントリが存在しない場合は、年齢のために、デフォルトで検索> 18
はい、あなたはadd these to the requestHandler definitionできる:
<lst name="defaults">
<str name="fq">age:[18 TO *]</str>
</lst>
( 18歳以上18歳未満の場合は{18 TO *]
または[19 TO *]
)。
デフォルトの代わりにappends
とinvariants
を使用して、すべてのクエリにフィルタクエリを追加したり、URLパラメータで上書きできない静的な値にパラメータを設定することもできます。
問題は、他の 'fq'エントリが定義されている可能性がありますが、' age'のフィルタはありません。この場合、 'age'フィルタを持つ' fq'のデフォルトは、他のフィルタによってオーバーライドされているため、有効にする必要があります。 – Mihai238
より高度なロジックが必要な場合は、ミドルウェアでこれを行う必要があると思います。パラメータを読み込んで解析して、Solrの1つのフィールドだけを設定から知る方法がないためです。あなたはrequestHandlerを拡張して、独自のJavaコードを書くことができます.. – MatsLindh
あなたは間違いなく正しいです。私は2つの異なるリクエストハンドラを使用することで、よりシンプルなソリューションを完成させました。ご協力ありがとうございました! – Mihai238