Elasticsearch搜索执行两种类型之间的交叉引用

时间:2014-08-25 21:28:35

标签: elasticsearch

我有一个弹性搜索索引,包含2种类型,“产品”和“品牌”

我要求过滤掉没有产品活跃的品牌(status='active')。

该产品包含以下字段:

brand_uuid
status
name
...

该品牌有以下领域:

uuid
name
...

到目前为止,我正在尝试运气:

http://search.localhost:9200/site/brand,product/

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "status": "active"
          }
        },
        *** Don't know how to cross reference between types for the second query ***
      ]
    }
  }
}

我是弹性搜索的新手,之前没有这样做,是否可以执行此类搜索?

1 个答案:

答案 0 :(得分:0)

使用品牌(父母)和产品(儿童)之间的父/子关系。看看父母/孩子'本博文中的部分:

http://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/

然后,您可以使用只会返回产品所在的品牌的has_child' filter。状态为active