是否可以选择通过更改索引设置或映射来按字母顺序对查询进行排序?
我知道有一个“排序”查询,但是删除了分数,我希望除了该术语的字母排序之外,也要考虑分数。
例如,如果结果“A”和“Z”的得分为2,而“C”的得分为1,我希望顺序为:
一种
ž
C
这可能吗?
这是我当前的索引设置和映射:
{
"users": {
"settings": {
"index": {
"analysis": {
"filter": {
"shingle_filter": {
"max_shingle_size": "2",
"min_shingle_size": "2",
"output_unigrams": "true",
"type": "shingle"
},
"edgeNGram_filter": {
"type": "nGram",
"min_gram": "1",
"max_gram": "20"
}
},
"analyzer": {
"autocomplete_query_analyzer": {
"filter": [
"standard",
"asciifolding",
"lowercase"
],
"tokenizer": "standard"
},
"autocomplete_index_analyzer": {
"filter": [
"standard",
"asciifolding",
"lowercase",
"shingle_filter",
"edgeNGram_filter"
],
"tokenizer": "standard"
}
}
},
"number_of_shards": "1",
"number_of_replicas": "1"
}
}
}
}
{
"users": {
"mappings": {
"data": {
"properties": {
"name": {
"type": "string",
"analyzer": "autocomplete_index_analyzer",
"search_analyzer": "autocomplete_query_analyzer"
}
}
}
}
}
}
是否可以在索引设置中添加一些内容,以便自动按字母顺序对结果进行排序?
最佳答案
ElasticSearch文档中的example显示您应该能够按多个值进行排序,包括_score
。尝试类似的方法:
"sort": [
{ "date": { "order": "desc" }},
{ "_score": { "order": "desc" }}
]
我不确定您要对哪个字段进行排序,因此您需要根据需要调整上面的示例。
让我知道这是否适合您:)
关于sorting - ElasticSearch使用分数按字母顺序对查询进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327396/