我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称。我迷路了,我的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"
分支放在几个地方(映射等内部),但无济于事。我想一个完整的例子(我现在找不到)也会帮助我。可能我错过了一些基本的东西。
答案 0 :(得分:28)
“分析”进入“设置”块,在创建索引时,在“映射”块之前或之后。
"settings": {
"analysis": {
"analyzer": {
"alfeanalyzer": {
"type": "pattern",
"pattern": "\\s+"
}
}
}
},
"mappings": {
"alfedoc": { ... }
}
这是一个很好的完整示例:Example 1