Я пытаюсь использовать значение во вложенном объекте для повышения моего ранга на основе метода custom_filters_score. Таким образом, матч не требуется, но если это произойдет, он повысит ранг. Как правило, можно жестко кодировать повышение, но я бы хотел использовать script field на основе значения во вложенном документе, который бы соответствовал.Custom_Filters_Score с вложенным объектом и скриптом
Если я жестко задал значение, скажем 1000, я вижу влияние на счет. Тем не менее, похоже, что ES не может понять смысл популярного ключа, так как он дает ему никакого стимула.
Документов выглядеть так с SEARCH_TERMS быть типом = вложенные, просто два ключа и два значения:
{
"name":"colorful light blue things that make developers wild"
"search_terms":[
{
"a_term":"colorful",
"popularity":33433
},
{
"a_term":"light blue",
"popularity":343
}
]
"other_keys":"stuff"
}
Вот пример custom_filters_score запрос
{
"query":{
"custom_filters_score":{
--query:{} would be here--
,"filters":[
{
"filter":{
"nested":{
"path":"search_terms"
,"query": {
"match": {
"a_term": "light blue"
}
}
}
},
--here is my problem area
"script":"doc['search_terms.popularity'].value"
-- this would work, hard coded value
"script":"1000"
}
]
}
}