我使用'http://es:9200/products/_search?q=sony'搜索多种类型的索引。这将返回许多不同类型的点击。命中数组包含所有结果,但不以我想要的顺序;我希望“电视”类型在其他类型之前始终显示。是否有可能按类型排序?Elasticsearch按类型排序
2
A
回答
2
您可以通过sorting
在预定义字段_type
上实现此目的。下面的查询按文档类型的升序对结果进行排序。
POST <indexname>/_search
{
"sort": [
{
"_type": {
"order": "asc"
}
}
],
"query": {
<query goes here>
}
}
0
我通过添加一个数字字段_is_OF_TYPE
到索引的文档并将其设置为1
对于那些给定类型的文档做到这一点。然后按照您想要的顺序排序这些字段。
例如:
Document A:
{
_is_television: 1,
... some television props here ...
}
Document B:
{
_is_television: 1,
... another television props here ...
}
Document C:
{
_is_radio: 1,
... some radio props here ...
}
and so on...
在ElasricSearch查询
然后:
POST radio,television,foo,bar,baz/_search
{
"sort": [
{"_is_television": {"unmapped_type" : "long"}}, // television goes first
{"_is_radio": {"unmapped_type" : "long"}}, // then radio
{"_is_another_type": {"unmapped_type" : "long"}} // ... and so on
]
}
这种解决方案的优点是速度。您只需对数字字段进行排序。不需要脚本排序。
相关问题
- 1. 排序Elasticsearch中的数组类型
- 2. Nest/ElasticSearch按_uid排序
- 3. 按名称排序elasticsearch
- 4. elasticsearch按文档ID排序
- 5. 按距离排序上ElasticSearch
- 6. 按类型排序在ractive
- 7. 使用elasticsearch按字母顺序排序
- 8. 按类型排序矢量按类型搜索或派生类型
- 9. 排序在Elasticsearch
- 10. Elasticsearch排序
- 11. “排序” Elasticsearch
- 12. Elasticsearch NEST v.5.0.1按GeoDistance排序错误
- 13. ElasticSearch:按日期排序靠近
- 14. Elasticsearch:按计算日期值排序
- 15. Elasticsearch如何按列表长度排序
- 16. Elasticsearch:按空值排序字段最后
- 17. 如何按类型排序 - SQL
- 18. 按特定类型排序收集c#
- 19. 按数据类型排序python字典
- 20. Visual Studio C#按类型排序字段
- 21. 按值类型对数组排序
- 22. ListView:无法按类型'System.Object'排序
- 23. 按对象类型排序NSArray
- 24. 按Python中的类型排序
- 25. 按原型排序
- 26. LINQ排序:不能按类型排序“System.IComparable”
- 27. 按类型限制ElasticSearch聚合?
- 28. elasticsearch对分类值的排序聚合
- 29. 按类型= text_en按字母顺序排序结果
- 30. elasticsearch排序不partial_fields
这将按字母顺序按类型名称进行排序,但作者希望它按给定顺序排列,例如, _television_,_foo_,_bar_ – wajda