当我索引一些文档时,有没有办法填充单独的索引?
假设我有类似的东西:
PUT person/_doc/1
{
"name": "Jonh Doe",
"languages": ["english", "spanish"]
}
PUT person/_doc/2
{
"name": "Jane Doe",
"languages": ["english", "russian"]
}
我想要的是每次添加一个人时,都会将一种语言添加到语言索引中。
就像是:
GET languages/_search
会给:
...
"hits" : [
{
"_index" : "languages",
"_type" : "doc",
"_id" : "russian",
"_score" : 1.0,
"_source" : {
"value" : "russian"
}
},
{
"_index" : "languages",
"_type" : "doc",
"_id" : "english",
"_score" : 1.0,
"_source" : {
"value" : "english"
}
},
{
"_index" : "languages",
"_type" : "doc",
"_id" : "spanish",
"_score" : 1.0,
"_source" : {
"value" : "spanish"
}
}
...
考虑管道,但我没有看到任何处理器允许这样的事情。
也许答案是创建一个自定义处理器。我已经有一个,但不确定如何在单独的索引中插入文档。
更新:使用@Val回答中描述的转换有效,并且似乎确实是正确的答案......
但是,我正在使用Open Distro for Elasticsearch并且转换在那里不可用。一些在那里工作的替代解决方案将不胜感激:)
更新 2:看起来OpenSearch正在取代Open Distro for Elasticsearch。并且有一个转换 api \o/