在ElasticSearch中创建索引时如何指定分析器

我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称。我迷路了,我的ES实例总是向我返回一条错误消息。

大致来说,这就是我想要做的:

"settings": {

"mappings": {

"alfedoc": {

"properties": {

"id": { "type": "string" },

"alfefield": { "type": "string", "analyzer": "alfeanalyzer" }

}

}

},

"analysis": {

"analyzer": {

"alfeanalyzer": {

"type": "pattern",

"pattern":"\\s+"

}

}

}

}

但这似乎行不通。ES实例总是返回一个错误,例如

MapperParsingException[mapping [alfedoc]]; nested: MapperParsingException[Analyzer [alfeanalyzer] not found for field [alfefield]];

我尝试将"analysis"字典的分支放在多个位置(在映射等内部),但无济于事。我想一个完整的示例(到目前为止还找不到)可以帮助我。可能我缺少了一些基本知识。

回答:

“分析”位于“设置”块中,在创建索引时位于“映射”块之前或之后。

"settings": {

"analysis": {

"analyzer": {

"alfeanalyzer": {

"type": "pattern",

"pattern": "\\s+"

}

}

}

},

"mappings": {

"alfedoc": { ... }

}

这是一个很好的示例:示例1

以上是 在ElasticSearch中创建索引时如何指定分析器 的全部内容, 来源链接: utcz.com/qa/420255.html

回到顶部