在elasticsearch中搜索文档,然后查询嵌套字段

时间:2017-01-13 08:47:38

标签: elasticsearch nested-documents

我有一个像这样的索引:

{
    "rentals": {
    "aliases": {},
    "mappings": {
      "rental": {
        "properties": {

         "address": {
            "type": "text"
         },

         "availability": {
            "type": "nested",
            "properties": {
                "chargeBasis": {
                   "type": "text"
                 },
                "date": {
                   "type": "date"
                },
               "isAvailable": {
                  "type": "boolean"
                },
               "rate": {
                  "type": "double"
                }
           }
       }
  }

这是我的用例:

  1. 我需要搜索所有"租借"有一个给定地址的。

    • 这很简单,
  2. 我需要获得"可用性"所有这些"租赁的数据"搜查; 仅适用于今天的日期

    • 这是我坚持的部分,如何查询所有"租借的嵌套文件"?

1 个答案:

答案 0 :(得分:0)

您需要使用nested query

  

由于嵌套对象被索引为单独的隐藏文档,因此我们无法直接查询它们。相反,我们必须使用嵌套查询来访问它们。

尝试类似:

{
  "query": {
    "nested": {
      "path": "availability", 
      "query": {
        "term": {
          "availability.date": "2015-01-01"
        }
      }
    }
  }
}