【发布时间】:2018-06-01 03:18:28
【问题描述】:
我有一个名为“Docs”的现有索引,其中包含文档。 我正在创建一个名为“Docs1”的新索引,与“Docs”完全相同,只有一个额外的字段,其中一个属性中带有分析器,我想将其用于自动完成目的。
“文档”索引中的属性
"name": {
"type": "text",
"analyzer": "text_standard_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
“Docs1”索引中的属性将是
{
"name": {
"type": "text",
"analyzer": "text_standard_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
},
"pmatch": {
"type": "text",
"analyzer": "text_partialmatching_analyzer"
}
}
}
}
我正在使用 Reindex API 将记录从“Docs”复制到“Docs1”
POST _reindex { “资源”: { “索引”:“文档” }, “目的地”:{ “索引”:“Docs1” } }
当我重新索引时,我希望旧文档包含带有该字段信息的新字段。
我注意到目标索引“Docs1”中的新字段未针对现有数据进行分析。但它会针对我添加的任何新文档进行分析。
请推荐
【问题讨论】:
-
看一下mappings and reindex命令,你期望elasticsearch怎么知道在新字段里放什么数据?您需要在映射中创建一个多字段或使用“copy_to”。
-
我已经在使用多字段了。在我的“Docs1”索引定义中,我的“name”属性包含 2 个字段“keyword”和“pmatch”。我想以不同的方式分析同一个字段。
-
哦,对了,我被格式弄糊涂了。您检查日志是否有错误?
-
通过添加“类型”重新索引工作
-
POST _reindex { "source": { "index": "sourceindex" }, "dest": { "index": "destindex", "type":"desttype" } }
标签: elasticsearch elasticsearch-5