2017-03-07 62 views
0

我在嘗試創建索引時收到異常,並且還有映射。我發出PUT到我的本地ElasticSearch實例(訴5.1.1)http://127.0.0.1:9200/indexname用了以下機身一次創建索引和映射時分析異常

{ 
    "settings": { 
    "index": { 
     "number_of_replicas": "1", 
     "number_of_shards": "1" 
    } 
    }, 
    "mappings": { 
    "examplemapping": { 
     "properties": { 
     "titel": { 
      "type": "text", 
      "index": false 
     }, 
     "body": { 
      "type": "text" 
     }, 
     "room": { 
      "type": "text", 
      "index": false 
     }, 
     "link": { 
      "type": "text", 
      "index": false 
     } 
     } 
    } 
    } 
} 

我收到以下錯誤

{ 
    "error": { 
    "root_cause": [ 
     { 
     "type": "mapper_parsing_exception", 
     "reason": "No handler for type [text] declared on field [body]" 
     } 
    ], 
    "type": "mapper_parsing_exception", 
    "reason": "Failed to parse mapping [examplemapping]: No handler for type [text] declared on field [body]", 
    "caused_by": { 
     "type": "mapper_parsing_exception", 
     "reason": "No handler for type [text] declared on field [body]" 
    } 
    }, 
    "status": 400 
} 

從上創建索引應該是文件可能創建索引並同時創建一個或多個映射: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html

我已閱讀https://www.elastic.co/guide/en/elasticsearch/reference/current/string.html並相信我正確使用新的數據類型,但例外情況另有說明。

任何幫助,非常感謝。

分辨率

感謝Val i的評論指出了正確的方向。的確我沒有使用5.1.1版本,但版本2.4.3

那麼爲什麼混淆?嗯,我已經運行兩個版本(而不是一次),並startet並使用相應的蝙蝠腳本攔住他們:

call es-2.4.3/bin/service.bat start 
call es-5.1.1/bin/elasticsearch-service.bat start 

看來,即使我已經運行後,它仍然ES2.4.3那開始了。這可能是由bat腳本內部的邏輯引起的。

展望未來,我會記住檢查服務本身的版本響應,我將不得不找到適當的設置來運行ElasticSearch的多個版本。

感謝您的答案。

+1

您確定您正在運行ES 5.1.1嗎? 'curl -XGET localhost:9200 /'告訴你什麼? – Val

+0

錯誤是想說彈性無法找到文本處理程序,你可以請重新檢查你的版本爲彈性5.1.1支持文本 – user3775217

+0

@darkdark你應該創建一個答案並接受它;-) – Val

回答

0

感謝Val的評論,我指出了正確的方向。的確我沒有使用5.1.1版本,但版本2.4.3

那麼爲什麼混淆?嗯,我已經運行兩個版本(而不是一次),並startet並使用相應的蝙蝠腳本攔住他們:

call es-2.4.3/bin/service.bat start 
call es-5.1.1/bin/elasticsearch-service.bat start 

看來,即使我已經運行後,它仍然ES2.4.3那開始了。這可能是由bat腳本內部的邏輯引起的。

展望未來,我會記住檢查服務本身的版本響應,我將不得不找到適當的設置來運行ElasticSearch的多個版本。

感謝所有誰投入!

0

我在嘗試設置ElasticSeach 5.0.0它工作得很好,的GET indexname輸出:

{ 
    "indexname": { 
    "aliases": {}, 
    "mappings": { 
     "examplemapping": { 
     "properties": { 
      "body": { 
      "type": "text" 
      }, 
      "link": { 
      "type": "text", 
      "index": false 
      }, 
      "room": { 
      "type": "text", 
      "index": false 
      }, 
      "titel": { 
      "type": "text", 
      "index": false 
      } 
     } 
     } 
    }, 
    "settings": { 
     "index": { 
     "creation_date": "1488892255496", 
     "number_of_shards": "1", 
     "number_of_replicas": "1", 
     "uuid": "GugRGgllQbCadCTj5oq4ow", 
     "version": { 
      "created": "5000099" 
     }, 
     "provided_name": "testo" 
     } 
    } 
    } 
} 

同時請注意,我肯定會建議您設置的"number_of_shards": "1"不同的值作爲規則的拇指認爲Elasticsearch爲每個分片分配1個線程,因此分片越大,文本搜索就越慢。現在還要記住,分配更多碎片會產生一些開銷,所以不要「過度分配」。有關更多詳細信息,請參閱此postthis one

相關問題