电子商务中的ElasticSearch:产品的多个类别

时间:2015-04-28 07:28:15

标签: elasticsearch e-commerce categories

如何在ElasticSearch中为此类产品编制索引?我们根据属性(颜色,品牌,大小,用户输入的内容)分离了所有文档,但它们都属于一组类别。可能是一个,可能是15个。

        [0] => Array
            (
                [product_id] => 123456
                [product_name] => Shirt 1
                [filter_name] => Colour
                [filter_value] => Blue
                [product_parent_id] => 111111
                [product_has_discount] => 0
                [product_price] => 19.99
                [product_stock] => 1
            )
        [1] => Array
            (
                [product_id] => 123457
                [product_name] => Shirt 1
                [filter_name] => Colour
                [filter_value] => Red
                [product_parent_id] => 111111
                [product_has_discount] => 0
                [product_price] => 19.99
                [product_stock] => 1
            )

我们如何将类别标记为此?它会如此简单吗

        [product_categories] => ;4750;4834;4835;4836;

然后使用值为match against category的{​​{1}}查询ElasticSearch?那可能吗?推荐?

1 个答案:

答案 0 :(得分:2)

您可以在映射中将product_categories定义为整数,并将类别值作为数组传递,如

 [product_categories] => array(4750,4834,4835,4836)

编辑:您了解了有关映射here的更多信息。更具体地映射array type

将数据编入索引后,您可以轻松地在所有组合中对字段product_categories进行查询,过滤,汇总。

例如,匹配4750或4750类产品:

{
    "filter": {
        "terms": {
            "product_categories": [
                4750,
                4750
            ]
        }
    }
}