小编use*_*459的帖子

具有嵌套对象的弹性搜索嵌套查询

这是我在弹性搜索中存储在索引中的数据类型。我必须找到主要成分牛肉(重量小于 1000)的食谱和成分 -(辣椒粉和重量小于 250),(橄榄油和重量小于 300)以及所有其他成分类似。

   "Name": "Real beef burritos",
      "Ingredients": [
         {"name": "olive oil",
            "id": 27,
            "weight": 200},
         {"name": "bonion","id": 3,"weight": 300},
         {"name": "garlic",
            "id": 2,
            "weight": 100
         },
         {"name": "chilli powder",
            "id": 35,
            "weight": 150},
           {"name": "coriander",
            "id": 40,
            "weight": 600},
         {"name": "tortillas",
            "id": 41,
            "weight": 700}
      ],"Main_ingredient": {
         "type": "Beef",
         "id": 101,
         "weight": 1000
      }}}
Run Code Online (Sandbox Code Playgroud)

索引的映射是

{"final":{"mappings":{"superb":{"properties":{"Cook Time":{"type":"long"},"Ingredients":{"type":"nested","properties":{"id":{"type":"short"},"name":{"type":"string"},"type":{"type":"string"},"weight":{"type":"short"}}},"Main_ingredient":{"properties":{"id":{"type":"long"},"type":{"type":"string"},"weight":{"type":"long"}}},"Name":{"type":"string"},"Prep Time":{"type":"long"},"Servings":{"type":"long"},"Tags":{"type":"string"},"Urls":{"type":"string"},"Views":{"type":"long"}}}}}}
Run Code Online (Sandbox Code Playgroud)

我的查询是

{
  "query": {
    "bool": {
      "must": [
        { "match": { "Main_ingredient.type": "Beef" }}, 
        {"range":{"Main_ingredient.weight":{"lte":1000}}},
        {
          "nested": {
            "path": …
Run Code Online (Sandbox Code Playgroud)

querydsl elasticsearch elastic-map-reduce elasticsearch-plugin

3
推荐指数
1
解决办法
734
查看次数