Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ES java库准备嵌套排序筛选器_Java_Sorting_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Sorting,elasticsearch" /> elasticsearch,Java,Sorting,elasticsearch" />

使用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。