У меня такая проблема что я не могу сделать релевантную сортировку
у меня есть запрос на продукты :
"query": { "bool": { "must": [ { "multi_match": { "query": "apple Iphone XR 128GB", "fields": [ "model.ngram", "name.ngram", "vendor.ngram", "model^3", "vendor^2" ] } } ], "filter": { "term": { "cur": "russia" } } } }
он выдает мне такой результат :
"hits" : { "total" : 19271, "max_score" : 104.822586, "hits" : [ { "_index" : "product", "_type" : "default", "_id" : "4672676", "_score" : 104.822586, "_source" : { "id" : "4672676", "cur" : "russia", "price" : 64990.0, "model" : null, "name" : "Apple iPhone XR 128GB (черный)", < ... >
Все отлично , теперь я хочу избавиться от мусора и отсортировать полученый результат по полю "name"... тоесть я ограничиваю скор , и перь то что у меня получилось хочу отсортировать по полю name
я добавляю в свой запрос ограничение на скор и сортировку :
"query": { "bool": { "must": [ { "multi_match": { "query": "apple Iphone XR 128GB", "fields": [ "model.ngram", "name.ngram", "vendor.ngram", "model^3", "vendor^2" ] } } ], "filter": { "term": { "cur": "russia" } } }, "min_score": 40, "sort": [ { "name.keyword": { "order": "desc" } } ] }
В итоге я получаю вот это во ...
"hits" : { "total" : 431, "max_score" : null, "hits" : [ { "_index" : "product", "_type" : "default", "_id" : "ad_2271_89495", "_score" : null, "_source" : { "id" : "ad_2271_89495", "cur" : "russia", "price" : 1990.0, "model" : "Touch Case для Apple iPhone Xs, светло-розовый", "name" : "Чехол для смартфона uBear Touch Case для Apple iPhone Xs, светло-розовый", < ... >
мало того с что скор null так еще и поиск сломаны
я уже 2 день пытаюсь понять и найти решение этой проблемы но все четно , прочитал много топик но ничего похожего даже близко не нашел ....
properties "name" если нужно
"name": { "type": "text", "fields": { "keyword": { "type": "keyword", "normalizer": "keyword_lowercase" }, "ngram": { "type": "text", "analyzer": "custom_ngram" }, "ru": { "type": "text", "analyzer": "russian" } }, "analyzer": "standard" }
Помогите пожалуйста!