如何改进Elasticsearch中的inner_hits

时间:2018-03-01 09:05:54

标签: elasticsearch

我在my_index

中有两个ES_TYPE
  1. 用户
  2. user_property
  3. 一个定义为父(用户),另一个定义为子(user_property)

    user_property具有以下映射:

    PUT /my_index/_mapping/user_property
    {
       "user_property": {
          "properties": {
             "name": {
                "type": "keyword",
             },
             "value": {
                "type": "keyword"
             }
          }
       }
    }
    

    我想让所有用户都拥有一些属性(比如property1,property2)及其属性值,所以为了做到这一点,我使用 inner_hits 创建以下查询,但查询响应时间因内部高度而呈指数级大

    GET /my_index/user/_search
    {
       "query": {
          "bool": {
             "must": [
                {
                   "has_child": {
                      "type": "user_property",
                      "query": {
                         "bool": {
                            "must": [
                               {
                                  "term": {
                                     "name": "property1"
                                  }
                               }
                            ]
                         }
                      },
                      "inner_hits": {
                         "name": "inner_hits_1"
                      }
                   }
                },
                {
                   "has_child": {
                      "type": "user_property",
                      "query": {
                         "bool": {
                            "must": [
                               {
                                  "term": {
                                     "name": "property2"
                                  }
                               }
                            ]
                         }
                      },
                      "inner_hits": {
                         "name": "inner_hits_2"
                      }
                   }
                }
             ]
          }
       }
    }
    

    有没有办法减少这个时间?

0 个答案:

没有答案