Solr インスタンスがあり、Solr 関数クエリを使用して、ドキュメントごとに独自のスコアを計算したいと考えています。例として、次のクエリがあるとします。
q={!func}termfreq('text', 'foo')
これを行うと、インデックス内のすべてのドキュメントの数である numfound が結果に含まれます。特定の数値を下回るスコアを持つドキュメントを除外できるようにしたいので、理想的には、次のような rangequery を使用してフィルタリングしたいと考えています。
fq={!frange l=1}score
私のクエリパラメータが結果スコアを決定するためです。しかし、これを行うと、次のようなエラーが表示されます。
"error": {
"msg": "undefined field: \"score\"",
"code": 400
}
代わりに、次のようなフィルターを追加してみました:
fq={!frange l=1}termfreq('text', 'foo')
これにより正しい結果が得られますが、計算が遅くなる可能性があるため、フィルタークエリでスコア疑似フィールドを使用するか、他の方法でSolrにfunctionqueryの結果をキャッシュさせることができるかどうかを知りたいですクエリパラメータ? または、これを実現する rangequery フィルター アプローチの代替手段はありますか?