使用elasticsearch-ruby放置新映射

时间:2015-01-19 14:37:03

标签: ruby elasticsearch

我想put a new mapping到索引而不删除索引。 Elasticsearch::Model似乎没有为此提供API。还是我想念它?

3 个答案:

答案 0 :(得分:0)

您可以在旧映射上设置新映射,而不删除任何数据或删除索引。问题是更新的字段映射仅应用于新数据,而不是现有数据。如果您希望将新映射应用于旧数据,则需要重新编制索引。

答案 1 :(得分:0)

鉴于Elasticsearch客户端,您可以更新现有的字段映射,如下所示:

client.indices.put_mapping index: 'myindex', type: 'mytype', body: {
  mytype: {
    properties: {
      title: { type: 'string', analyzer: 'snowball' }
    }
  }
}

请参阅https://github.com/elastic/elasticsearch-ruby/blob/master/elasticsearch-api/lib/elasticsearch/api/actions/indices/put_mapping.rb#L50

答案 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"