在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