Rob*_*bin 2 ruby-on-rails elasticsearch tire
我有 2 个型号,Player并且Item. Aplayer有很多items.
模型的映射Item:
tire do
mapping(
_parent: { type: 'player' },
_routing: { required: true, path: :user }
) do
indexes :user, type: "string", index: :not_analyzed
end
Run Code Online (Sandbox Code Playgroud)
(不确定该path选项是什么,除了它可能用于将项目存储在不同的分片上?
我不明白的是如何player在保存item. 在我在网上找到的所有父/子关系示例中,他们只是使用 CURL:
curl -XPOST localhost:9200/authors/book/1?parent=2 -d '{
"name": "Revelation Space",
"genre": "scifi",
"publisher": "penguin"
}'
Run Code Online (Sandbox Code Playgroud)
这个例子可能就是您正在寻找的:https://gist.github.com/demirhanaydin/6548883
默认情况下,Elasticsearch 将使用文档 Id 来处理路由,它会对 ID 进行哈希处理并计算分片数量的模数,以确定应将其存储在哪个分片上。如果您提供覆盖此默认行为的路由值。
在父子关系中,子文档与父文档存储在同一分片上,因此将查看父 ID 以获取其路由值。
路径值是 Elasticsearch 应该在存储的文档中查找路由值的位置。如果它设置为“用户”,它将使用该字段。
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |