Elasticsearch按父或子字段筛选

时间:2018-06-15 10:43:19

标签: elasticsearch parent-child

我现在已经和elasticsearch合作了一段时间。阅读父母的孩子关系,我无法找到我正在寻找的答案。

要填充ui-grid,例如,我确实有一个查询,它会为我提供一个游戏平台列表,每个平台都有一个子列表,其中包含已启动的游戏,寻找过滤该列表的方法,我可以考虑到孩子,我怎么能这样做呢。

父级 - 平台|发布日期

儿童 - 标题|平台|发布日期。

如果我按发布日期进行过滤,我只会从父级中获取,在query上添加has_child以及在主查询上添加过滤器,我可以按过滤一个又一个,但不是一个另一个。如果我使用名称" box"我得到了xbox,xbox360和xbox,但没有包含" box"在标题中。

使用下面的查询,它只给我带来了xbox游戏机和xbox游戏。在这种情况下,我需要考虑两者

{  
   "size":100,
   "from":0,
   "query":{  
      "bool":{  
         "should":[  
            {  
               "has_child":{  
                  "child_type":"games",
                  "inner_hits":{  
                     "from":0,
                     "size":5000,
                     "_source":[  
                        "title",
                         "platform",
                         "launchDate"
                     ]
                  },
                  "query":{  
                     "bool":{  
                         "should":[  
                             {  
                               "wildcard":{  
                                  "title":"*box*"
                               }
                            }
                         ]
                     }
                  }
               }
            }
         ],
         "filter":[  
            {  
               "wildcard":{  
                  "title":"*box*"
               }
            }
         ]
      }
   },
   "_source":[  
      "platform",
       "launchDate",
       "company"
   ],
   "sort":[  
      {  
         "launchDate":"desc"
      }
   ]
}

0 个答案:

没有答案