假设我有索引,它的映射如下所示:
curl -XPUT 'http://localhost:9200/oldindex/_mapping/book' -d '
{
"book" : {
"properties" : {
"title" : {"type" : "text"},
"words" : {"type" : "text"},
"pages": {"type": "int"}
}
}
}'
我想从旧索引中创建一个新索引,但现在我希望“word”type字段是“关键字”,而不是"text":
curl -XPUT 'http://localhost:9200/oldindex/_mapping/book' -d '
{
"book" : {
"properties" : {
"title" : {"type" : "text"},
"words" : {"type" : "keyword"},
"pages": {"type": "int"}
}
}
}'
我怎么能这么做?我是否可以使用"Reindex API“,或者有更好的解决方案?
发布于 2018-01-16 15:01:01
假设您不需要索引上的另一个字段(如wordsKeyword
),那么重新索引API可能是最好的。将数据移动到临时索引,对索引进行核化并重新创建它(通过更新的映射),然后将临时索引数据重新索引到新索引中。
一步一步地说,这是:
如果您不介意使用另一个字段,并且不想重新索引,则可以使用查询 API通过脚本将值逐字逐句地复制到新映射的keyword
字段中,从而减少对text
字段的推荐。
https://stackoverflow.com/questions/48290970
复制