![](/img/trans.png)
[英]Elasticsearch on nested datatype : MapperParsingException
[英]MapperParsingException creating elasticsearch index
我正在嘗試創建以下索引和映射。
CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate("my_index");
XContentBuilder mappingBuilder = jsonBuilder()
.startObject()
.startObject("my_type")
.startObject("properties")
.startObject("nombre")
.field("analyzer", "keyword_lowercase")
.field("type", "string")
.endObject()
.startObject("codigo")
.field("type", "string")
.field("analyzer", "keyword_lowercase")
.endObject()
.endObject()
.endObject()
.endObject();
createIndexRequestBuilder.addMapping(document.type(), mappingBuilder);
XContentBuilder mappingSettingsBuilder = jsonBuilder()
.startObject()
.startObject("index")
.startObject("analisis")
.startObject("analyzer")
.startObject("keyword_lowercase")
.field("type","custom")
.field("tokenizer","keyword")
.array("filter", "lowercase")
.endObject()
.endObject()
.endObject()
.endObject()
.endObject();
createIndexRequestBuilder.setSettings(mappingSettingsBuilder);
createIndexRequestBuilder.execute().actionGet();
但是我收到以下異常:
org.elasticsearch.index.mapper.MapperParsingException:找不到字段[codigo]的分析器[keyword_lowercase]
我想我必須以任何方式關閉/打開索引才能獲得成功,但是我不知道什么時候……我已經測試了幾件事而沒有成功。 任何想法?
首先十分感謝
我認為當我們使用create api時,無法在單獨的線程中進行映射和索引。 解決方案是同時進行:
XContentBuilder mappingCreateBuilder = jsonBuilder()
.startObject()
.startObject("mappings")
.startObject(document.type())
.startObject("properties")
.startObject("nombre")
.field("analyzer", "keyword_lowercase")
.field("type", "string")
.endObject()
.startObject("codigo")
.field("type", "string")
.field("analyzer", "keyword_lowercase")
.endObject()
.endObject()
.endObject()
.endObject()
.startObject("settings")
.startObject("index")
.startObject("analisis")
.startObject("analyzer")
.startObject("keyword_lowercase")
.field("type","custom")
.field("tokenizer","keyword")
.array("filter", "lowercase")
.endObject()
.endObject()
.endObject()
.endObject()
.endObject()
.endObject();
createIndexRequestBuilder = client.admin().indices().prepareCreate(document.indexName());
createIndexRequestBuilder.setSettings(mappingCreateBuilder);
createIndexRequestBuilder.execute().actionGet();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.