#elasticsearch
Вопрос:
Я ищу в свойстве массива в эластичном индексе. В документе есть два элемента массива, соответствующих запросу. Таким образом, итоговая оценка документа такова 1.2038873 = 0.6019437 0.6019437
. Это разумное поведение для некоторых случаев, но не для моего.
Есть ли возможность найти максимальное значение среди суббаллов, а не их сумму?
Таким образом , мне нужно значение 0.6
, оставаясь в диапазоне 0..1
. Существует обходной путь — вложенный запрос, — но введение этой сложности по такой незначительной причине выглядит для меня странным: нет большой разницы, кстати sum
, и max
для реализации на стороне ES.
DELETE http://localhost:9200/arrays
PUT http://localhost:9200/arrays
{
"mappings": {
"properties": {
"name": {
"type": "keyword"
}
}
},
"settings": {}
}
POST http://localhost:9200/arrays/_doc/1
{"name": ["john1", "john2"]}
POST http://localhost:9200/arrays/_doc/2
{"name": ["mary"]}
POST http://localhost:9200/arrays/_search?pretty=trueamp;explain=true
{
"query": {
"function_score": {
"query": {
"fuzzy": {
"name": {
"value": "john",
"fuzziness": "AUTO",
"prefix_length": 2
}}}}}}
Полное объяснение: https://gist.github.com/zencd/61d7dc1c63bbb1734dbb12ab2a4c9f62