目前我正在评估是否以及如何将旧的基于 lucene 的分析器组件移动到弹性搜索(0.19.18)。由于遗留代码基于 lucene,我将分析器包装在 es-plugin 中。分析器的配置如下所示:
index.analysis.analyzer.myAnalyzer.type : myAnalyzer
index.analysis.analyzer.default.type: myAnalyzer
index.analysis.analyzer.default_index.type: myAnalyzer
index.analysis.analyzer.default_search.type: myAnalyzer
到目前为止,一切都很好。
curl -XGET 'localhost:9200/_analyze' -d 'Some text'
将返回一个包含正确标记化文本的对象,但
curl -XGET 'localhost:9200/<name-of-my-index>/_analyze' -d 'Some text'
将返回一个根本没有标记化的文本。显然,只应用了小写过滤器而不是 myAnalyzer。索引中的对象都没有被正确分析。
索引映射如下所示(head-plugin 的输出):
mappings: {
item: {
analyzer: myAnalyzer
properties: {
id: {
type: string
}
itemnumber: {
type: string
}
articletext: {
analyzer: myAnalyzer
type: string
}
sortvalue: {
type: string
}
salesstatus: {
format: dateOptionalTime
type: date
}
}
}
}
由于我是 ES 新手,我无法弄清楚这种行为的真正原因是什么。有人有想法吗?