我有许多源正在流入服务器。

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/

10-12 21:41