我为我的Ruby on Rails应用程序使用elasticsearch-rails
和elasticsearch-model
宝石,这就像问答网站。在嵌套对象更新上更新多个文档
我的主要问题是:当嵌套在多个文档中的嵌套对象发生更改时,如何告知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
但这ISN不正确地更新适当的question
对象,我不知道要传递给index_document
调用的内容,以确保它使用新的用户名更新所有相应的question
。有人知道吗?它甚至可以帮助我看看RESTful/curl请求应该是什么样子?
任何帮助,将不胜感激!
嘿,斯隆,所以这确实让查询变得更加困难。特别是,我试图建立祖父母和孙子女(像https://www.elastic.co/guide/en/elasticsearch/guide/current/grandparents.html),但似乎'inner_hits'停止工作。 ..你有什么想法,为什么可能会发生? – user5243421