2014-02-11 51 views
1

重建索引我使用了以下內容:避免通過JDBC-河上elasticsearch

ElasticSearch - v0.90.9爲MySQL

JDBC連接器 - v5.1.28

ElasticSearch河 - V2。 3.1

我能夠使用ElasticSearch構建和查詢索引數據。上述版本安裝在Ubuntu 12.04 LTS虛擬機上,ElasticSearch作爲服務在系統重啓後自動啓動。

讓我們說,當沒有索引時,我使用ElasticSearch River來構建新索引併發出PUT命令來構建索引,索引就會生成並且一切正常。現在,問題是當我關閉虛擬機並再次重新啓動時,此索引再次被重建。我覺得這很煩人,有沒有辦法阻止自動重建索引?

是否有ElasticSearch River或ElasticSearch設置,我應該注意防止自動索引重建?在我的情況下,這導致重複。

在此先感謝。

回答

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" } 
    } 
} 
+0

感謝您的意見。與此同時,我繼續編寫了一個簡單的基於PHP PDO的腳本,該腳本使用ElasticSearch REST體系結構從數據庫獲取數據並將其轉換爲ElasticSearch預期的JSON文檔格式。我還注意到,jdbc-river插件並未完全創建SQL查詢返回的所需數量的文檔。所以,不幸的是,我不得不拋棄jdbc-river插件。 – Prasanna