Elasticsearch не сортирует по двойному полю - PullRequest
0 голосов
/ 25 октября 2019

Я запрашиваю индекс в ES, используя приведенный ниже код

def cat_results_tmp(response,field):
    results=[]
    for hit in response['hits']['hits']:
        result_tuple = (
                        hit["_source"][field]
                        )
        results.append(result_tuple)
    return results       

def categories3(cat_sort_field="", sort_order=""):
    client = Elasticsearch([{'host':localhost,'port':9200}])
    response = client.search( \
    index="cat_test", \
    body={\
       "query": { "match_all": {} }
       ,"sort" : [
         { cat_sort_field: {"order" : sort_order} }]
        ,"size":100
        }
        )
    print(response)
    response3=cat_results_tmp(response,cat_sort_field)
    return response3

#fail if the field used for sorting is double
print(categories3("fielda","asc"))
print(categories3("fieldb","desc"))

Я попытался с несколькими полями для моего индекса, и все двойные поля могут быть отсортированы, я получаю 'sort': [0] для печатного ответа, в то время как поля с плавающей запятойработают нормально.

Также двойные поля не могут быть изменены в плавающие поля с отображением после индексации. Как решить эту проблему, кроме создания пользовательского сопоставления при индексации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...