2017-06-20 14 views
1

私はelasticsearchインデックスをいくつかのドキュメントが含まれています。各ドキュメントには、日付を含む "creationDate"というフィールドがあります。非対称減衰関数

私はインデックスをクエリしています。私は、creationDateに従ってドキュメントをスコアリングしたいので、ガウス関数を設定します。

しかし、私が理解する限り、減衰関数はすべて対称です。つまり、2007年の2005年のドキュメントと2006年の検索の両方のドキュメントが同じスコアを取得します。 しかし私は、より大きなものよりも、searchtermより小さい値に対して異なる減衰を使用できるようにしたいと考えています。

これを実現する方法が組み込まれていますか?

答えて

0

あなたが望むものを正確に行うための組み込みの方法があるかどうかはわかりません。しかし、この文書によれば、https://www.elastic.co/guide/en/elasticsearch/guide/current/decay-functions.htmlによれば、originを2006年から2007年の中間点の前に設定し、offsetを2007- originより小さく設定すると、同じ効果を達成できます。たとえば、originを2006年3月に、offsetを3か月間とすると、2006年1月〜2006年6月のドキュメントは同じランクになり、2005年のドキュメントは2007年のドキュメントよりもランクが高くなります。 enter image description here https://www.elastic.co/guide/en/elasticsearch/guide/current/script-score.html

(画像は弾性 doc自体から撮影):ここで説明するように、よりコントロール、あなたは、スクリプトを使用する必要があります