【发布时间】:2015-10-31 23:29:54
【问题描述】:
我正在为我的 Ruby on Rails 应用程序使用 elasticsearch-rails 和 elasticsearch-model gems,这就像一个问答网站。
我的主要问题是:当嵌套在多个文档中的嵌套对象发生更改时,如何告诉 Elasticsearch 更新哪些文档?
我有一个索引my_index 和question 和answer 的映射。特别是,question 有一个带有user 的嵌套对象:
"question": {
"properties": {
"user": {
"type": "nested",
"properties": {
"created_at": {
"type": "date",
"format": "dateOptionalTime"
},
"name": {
"type": "string"
},
"id": {
"type": "long"
},
"email": {
"type": "string"
}
}
}
...
}
}
用户可以更改他的名字,我有钩子来更新 Elasticsearch 中的用户:
after_commit lambda { __elasticsearch__.index_document}, on: :update
但这并没有正确更新适当的question 对象,我不知道将什么传递给index_document 调用以确保它使用新用户名更新所有相应的questions。有人知道吗?它甚至可以帮助我了解 RESTful/curl 请求应该是什么样子?
任何帮助将不胜感激!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 elasticsearch