我想put a new mapping到索引而不删除索引。 Elasticsearch::Model
似乎没有为此提供API。还是我想念它?
答案 0 :(得分:0)
您可以在旧映射上设置新映射,而不删除任何数据或删除索引。问题是更新的字段映射仅应用于新数据,而不是现有数据。如果您希望将新映射应用于旧数据,则需要重新编制索引。
答案 1 :(得分:0)
鉴于Elasticsearch客户端,您可以更新现有的字段映射,如下所示:
client.indices.put_mapping index: 'myindex', type: 'mytype', body: {
mytype: {
properties: {
title: { type: 'string', analyzer: 'snowball' }
}
}
}
答案 2 :(得分:0)
1登录到您的弹性搜索客户端
require 'elasticsearch'
client = Elasticsearch::Client.new log: true
2使用映射数据创建新索引
client.indices.create index: 'testindex', body: {
"mappings": {
"dynamic": false,
"properties": {
title: { type: 'text' }
}
}
}
3检查了您新创建的索引
client.indices.get_mapping index: "testindex"