ElasticSearch多项搜索

时间:2015-05-13 10:21:26

标签: elasticsearch

我有一些文档以弹性存储,并希望在几个术语上查询它们,并有几个可能的值。

例如,该文件基本上如下:

[id] => 1
[title] => 'running shoes'
[parent_product_id] => 100
[brand_id] => 198
[category_id] => 3

例如,我想查找属于1,2和3类别之一且品牌为198或245的所有产品。

一个产品只有一个类别,只有一个品牌,但我需要搜索能力接受两者的倍数。因此,所有产品都属于1类,但多个品牌,或多个品牌下的一个品牌,或多个类别下的多个品牌。

由于

1 个答案:

答案 0 :(得分:0)

  

我有一些文档以弹性存储,并希望在几个术语上查询它们,并有几个可能的值。

请在此处阅读:How to combine filtersHow to combine queries

  

例如,我希望查找属于1,2和3类别之一且品牌为198或245的所有产品。

试试这个:

curl -XGET 'http://localhost:9200/_search?pretty' -d '{
    "filter": {
        "bool": {
            "must": [
                {
                    "terms": {
                        "category_id": [1, 2, 3]
                    }
                },
                {
                    "terms": {
                        "brand_id": [198, 245]
                    }
                }
            ]
        }
    }
}'