使用ES java库准备嵌套排序筛选器
不久前,我有一个朋友。原来问题出在我的问题上。而不是:使用ES java库准备嵌套排序筛选器,java,sorting,
elasticsearch,Java,Sorting,
elasticsearch,不久前,我有一个朋友。原来问题出在我的问题上。而不是: "sort": [ { "children.size": { "order": "desc", "nested_filter": { "term": { "id": 1 } } } } ] 我使用的是: "sort": [ { "children.siz
"sort": [
{
"children.size": {
"order": "desc",
"nested_filter": {
"term": {
"id": 1
}
}
}
}
]
我使用的是:
"sort": [
{
"children.size": {
"order": "asc",
"nested_filter": {
"nested": {
"filter": {
"term": {
"id": 1
}
},
"path": "children"
}
}
}
}
]
不正确的查询受到ES库(elasticsearch-1.4.jar)生成的代码的强烈启发。下面是我用来准备查询排序部分的一个片段:
FieldSortBuilder mySort = SortBuilders.fieldSort("children.size")
.setNestedFilter(FilterBuilders.nestedFilter("children", FilterBuilders.termFilter("id", myId)))
.sortMode("avg")
.order(SortOrder.ASC);
当将这种“排序”添加到查询中时,最终结果是不正确的嵌套过滤器
我用错图书馆了吗?如何轻松克服此问题?此问题的答案出现在此处,但不知何故被删除。无论如何,有人向我解释说,我在方法
setNestedFilter
中使用了错误的过滤器-我不应该在那里提供嵌套过滤器,但它应该是一个术语过滤器。更改它似乎可以解决我的问题。谢谢,这对我来说很有效:)我基本上删除了nestedFilter中的nestedFilter。