在ElasticSearch中,哪种存储产品属性的方法更正确?
嵌套对象:
"attributes": [
{
"name": "color",
"value": "White"
},
{
"name": "size",
"value": "S"
}
]还是键值数组?
"attributes": [
{"color": White"}
{"size": "S"}
]假设属性是可搜索的,并且它们也将用于分面搜索(聚合)。每个产品可以有不同的属性,所以键(属性名)是不固定的。
发布于 2014-10-09 21:16:27
我发现第一种方法(嵌套)更好,因为它允许对属性名称进行聚合查询,从而解决了这些问题:
等。
发布于 2014-10-08 07:47:51
如果您使用第二种方法
"attributes": [
{"color": White"}
{"size": "S"}
]您可以直接在字段中搜索,并在这些值上构建方面。
发布于 2014-10-08 08:58:19
动态映射模板解决了以下问题:
"dynamic_templates": [{
"string_template": {
"path_match": "attributes.*",
"mapping": {
"index": "not_analyzed"
}
}
}]https://stackoverflow.com/questions/26251604
复制相似问题