Я запрашиваю индекс в 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]
для печатного ответа, в то время как поля с плавающей запятойработают нормально.
Также двойные поля не могут быть изменены в плавающие поля с отображением после индексации. Как решить эту проблему, кроме создания пользовательского сопоставления при индексации?