Может ли кто-нибудь посоветовать мне, как сделать собственный подсчет в ElasticSearch при поиске массива ключевых слов из массива ключевых слов?ElasticSearch Custom Scoring with Arrays
Например, допустим есть массив ключевых слов в каждом документе, например, так:
{ // 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
},
]
}
Но вместо того, чтобы просто определить, соответствуют ли они, я хочу использовать очень конкретный алгоритм подсчета очков:
Подсчет одного поля достаточно прост, но я не знаю, как управлять им с помощью массивов. Есть предположения?
Hi @Aleksi Asikainen, вы нашли какое-либо решение этого (используя elasticsearch)? –
Боюсь, что нет, но в настоящее время ElasticSearch имеет лучшую поддержку поддержки функций, что, я думаю, может быть достаточно хорошим для достижения этой цели: http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl- function-score-query.html –