キーワードの配列からキーワードの配列を検索するときに、ElasticSearch でカスタム スコアリングを行う方法について誰かアドバイスしてもらえますか?
たとえば、次のように、各ドキュメントにキーワードの配列があるとします。
{ // doc 1
keywords : [
red : {
weight : 1
},
green : {
weight : 2.0
},
blue : {
weight: 3.0
},
yellow : {
weight: 4.3
}
]
},
{ // doc 2
keywords : [
red : {
weight : 1.9
},
pink : {
weight : 7.2
},
white : {
weight: 3.1
},
]
},
...
そして、この配列に対してキーワードを一致させる検索に基づいて、各ドキュメントのスコアを取得したいと考えています。
{
keywords : [
red : {
weight : 2.2
},
blue : {
weight : 3.3
},
]
}
ただし、一致するかどうかを判断するだけでなく、非常に具体的なスコアリング アルゴリズムを使用したいと考えています。
単一のフィールドにスコアを付けるのは簡単ですが、配列でそれを管理する方法がわかりません。何かご意見は?