如何在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?那可能吗?推荐?
答案 0 :(得分:2)
您可以在映射中将product_categories
定义为整数,并将类别值作为数组传递,如
[product_categories] => array(4750,4834,4835,4836)
编辑:您了解了有关映射here的更多信息。更具体地映射array type。
将数据编入索引后,您可以轻松地在所有组合中对字段product_categories
进行查询,过滤,汇总。
例如,匹配4750或4750类产品:
{
"filter": {
"terms": {
"product_categories": [
4750,
4750
]
}
}
}