我有许多源正在流入服务器。
Example document is as follows -
{
"company" : "sony",
"size" : "10X",
"name" : "Kakhee pants",
"color" : "red"
}
“公司”和“名称”字段应保持唯一。那就是我不希望2个文档具有相同的公司和名称,但是具有不同的颜色和大小。
我如何在Elasticsearch中建立这一点?
最佳答案
最好的策略是根据这三个字段的值创建docID。
例如,对于此文档-
{
"company" : "sony",
"size" : "10X",
"name" : "Kakhee pants",
"color" : "red"
}
将docID设为sony + Kakhee_pants + red
然后将大小和颜色抽象为属性数组。
{
"company": "sony",
"name": "Kakhee pants",
"color": "red",
"attributes": [
{
"size": "10X",
"color": "red"
}
]
}
现在,当您插入文档时,创建一个upsert
如果文档不存在,则在为文档建立索引时,如果文档确实存在,则在更新属性字段时。
关于elasticsearch - 确保Elasticsearch中的自动索引编制时不会发生重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30044821/