1

例如,我有包含以下内容的数据:

{
  author: "test",
  books: [
    {
      name: "first book",
      cost: 50
    },
    {
      name: "second book",
      cost: 100
    }
  ]
}

我想搜索拥有所有书籍的作者cost > 40。查询会是什么样子?该字段books映射为nested property

4

1 回答 1

1

对于一本书的成本大于 40(点击数)的作者姓名,查询中的以下内容会起作用

POST http://192.168.0.68:9200/library/Book/_search
{
   "fields": ["author"], 
   "query": {
      "filtered": {
         "query": {
            "match_all": {}
         },
         "filter": {
            "nested": {
               "path": "books",
               "filter": {
                  "range": {
                     "books.cost": {
                        "gt": 40
                     }
                  }
               }
            }
         }
      }
   }
}

对于所有成本大于 40的书籍,我必须在收到响应后在客户端手动处理嵌套字段的集合

不确定脚本是否适用于此处以将过滤器应用于所有嵌套对象。

参考

文档不在嵌套文档中

于 2014-09-03T07:07:29.943 回答