0
我在弹性搜索中有两个字段(ID和Name)。如何编写脚本在elasticsearch中分别排序两个桶
我必须搜索和排序由下面的条件的数据的要求:
铲斗1:包含具有名称值空(排序以升序ID字段)
铲斗2中的所有记录:包含具有名称中的所有记录值呈现(按名称字段按升序排序)
然后在一个响应中返回存储区1的所有记录,然后返回存储区2。
我在弹性搜索中有两个字段(ID和Name)。如何编写脚本在elasticsearch中分别排序两个桶
我必须搜索和排序由下面的条件的数据的要求:
铲斗1:包含具有名称值空(排序以升序ID字段)
铲斗2中的所有记录:包含具有名称中的所有记录值呈现(按名称字段按升序排序)
然后在一个响应中返回存储区1的所有记录,然后返回存储区2。
听起来好像你可以用不同的方式说明这一点:获取所有文档,然后按名称排序(先空!),然后按ID排序。
这样说,解决方案非常容易失败。无论如何,空字段应该排序时排序升序,所以:
{
"query" : {
"match_all": {}
},
"sort" : [
{ "Name" : "asc" },
{ "ID" : "asc" }
]
}
但在这种情况下,桶2将按ID也排序,我不想。我希望Bucket 1只会按ID字段排序,而Bucket 2只会按名称字段排序。在结果Bucket 1之后是Bucket 2. – Shailendra
@Shailendra - 只有当Name相等时,Bucket 2才会按ID排序。既然你没有指定名称相等时应如何排序,我认为这是可以接受的。 – femtoRgon