我只需使用' http://es:9200/products/_search?q=sony'即可搜索多种类型的索引。这将返回许多不同类型的点击。命中数组包含所有结果,但不按我想要的顺序;我想要电视'键入以在其余之前始终显示。是否有可能按类型订购?
答案 0 :(得分:2)
您可以通过sorting
在预定义字段_type
上实现此目的。下面的查询按文档类型的升序对结果进行排序。
POST <indexname>/_search
{
"sort": [
{
"_type": {
"order": "asc"
}
}
],
"query": {
<query goes here>
}
}
答案 1 :(得分: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
]
}
此解决方案的好处是速度。您只需对数字字段进行排序。无需脚本排序。