避免在elasticsearch上通过jdbc-river重建索引

时间:2014-02-11 22:34:26

标签: elasticsearch elasticsearch-jdbc-river

我使用以下内容:

  

ElasticSearch - v0.90.9

     

MySQL的JDBC连接器 - v5.1.28

     

ElasticSearch River - v2.3.1

我可以使用ElasticSearch构建和查询索引数据。上述版本安装在Ubuntu 12.04 LTS虚拟机上,ElasticSearch作为服务运行,在系统重启后自动启动。

让我们说当没有索引时我使用ElasticSearch River构建新索引并发出PUT命令来构建索引,索引就构建完毕并且一切正常。现在,问题是当我关闭虚拟机并再次重新启动它时,会再次重建此索引。我发现这很烦人,有没有办法防止自动重建索引?

我是否应该注意ElasticSearch River或ElasticSearch设置以防止自动索引重建?在我的情况下,这会导致重复。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我发现停止重新索引的唯一方法是在运行后删除河文档。

但是,如果您遇到的问题是文档重复,那么您需要做的是识别id字段。有两种方法可以执行此操作,或者使用标记为“_id”的字段导入数据,或者在创建标识id字段的索引的映射时标识id字段,如下例所示。

PUT my_index
{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 3
    },
    "mappings": {
        "my_type": {
            "properties":{
                "field1": { "type": "string", "analyzer": "keyword" }
        },
        "_id": { "path": "field1" }
    }
}