Sorting 排序结果是弹性的
正在尝试对查询结果进行排序。以下两个查询均无效:Sorting 排序结果是弹性的,sorting,elasticsearch,Sorting,elasticsearch,正在尝试对查询结果进行排序。以下两个查询均无效: { "sort": [ { "name": { "order": "asc" } } ], "query": { "match_all": {} } } { "query": { "match_all": {} }, "sort": [ { "name": { "order": "asc" }
{
"sort": [
{
"name": {
"order": "asc"
}
}
],
"query": {
"match_all": {}
}
}
{
"query": {
"match_all": {}
},
"sort": [
{
"name": {
"order": "asc"
}
}
]
}
根据()的说法,尽管它们似乎是有效的。我错过了什么?顺便问一下,在弹性中,查询部分的顺序是否很重要?我也遇到过同样的情况。如果您的名称字段映射为字符串并进行了分析,则查询永远无法工作。使用多字段类型,您可以将名称映射两次,一个作为字符串并已分析,另一个作为字符串而未分析。前
'user_id' =>array('type'=>'integer'),
'name' =>array(
'type'=>'multi_field',
'fields'=>array(
'name'=>array('type'=>'string','index'=>'analyzed'),
'sort_name'=>array('type'=>'string','index'=> 'not_analyzed')
)
)
使用上面的映射,您可以在名称字段上搜索,并且可以使用sort\u name进行排序
{
'query': {
'query_string':{'query':'user_name*','fields':['name']}
},
'sort':[
{
'name.sort_name': {
'order': 'asc'
}
}
]
}
参考链接:
1)
2) 我也遇到过同样的情况。如果您的姓名字段映射为字符串并进行了分析,则查询将无法工作。使用多字段类型,您可以将名称映射两次,一个作为字符串并已分析,另一个作为字符串而未分析。前
'user_id' =>array('type'=>'integer'),
'name' =>array(
'type'=>'multi_field',
'fields'=>array(
'name'=>array('type'=>'string','index'=>'analyzed'),
'sort_name'=>array('type'=>'string','index'=> 'not_analyzed')
)
)
使用上面的映射,您可以在名称字段上搜索,并且可以使用sort\u name进行排序
{
'query': {
'query_string':{'query':'user_name*','fields':['name']}
},
'sort':[
{
'name.sort_name': {
'order': 'asc'
}
}
]
}
参考链接:
1)
2) 你所说的“工作”和“不工作”是什么意思?是否分析了您的名称
属性(请粘贴相关映射片段)?你的语法确实正确。你说的“有效”和“无效”是什么意思?是否分析了您的名称
属性(请粘贴相关映射片段)?你的语法确实正确。