我在我的Rails应用程序中使用
elasticsearch-rails gem来简化与Elasticsearch的集成.我正在尝试使用
phonetic analysis plugin,所以我需要为我的索引定义自定义分析器和自定义过滤器.
我尝试了这段代码,以便使用soundex语音过滤器执行自定义分析,但它失败并显示异常消息:
[!!!] Error when creating the index: Elasticsearch::Transport::Transport::Errors::BadRequest
[400] {“error”:”MapperParsingException[mapping [call_sentence]]; nested: MapperParsingException[Analyzer [{tokenizer=standard,filter=[standard,lowercase,metaphoner]}] not found for field [phonetic]]; “,”status”:400}
# Set up index configuration and mapping # settings index: { number_of_shards: 1,number_of_replicas: 0 } do mapping do indexes :text,type: 'multi_field' do indexes :processed,analyzer: 'snowball' indexes :phone,{analyzer: { tokenizer: "standard",filter: ["standard","lowercase","metaphoner"] },filter: { metaphoner: { type: "phonetic",encoder: "soundex",replace: false } }} indexes :raw,analyzer: 'keyword' end end end
解决方法
您也可以在设置调用中指定它:
settings index: { number_of_shards: 1,number_of_replicas: 0,analysis: { filter: { metaphoner: { type: 'phonetic',encoder: doublemetaphone,replace: true,} },analyzer: { phonetic_analyzer: { tokenizer: 'standard',"metaphoner"],} } } } do mapping do indexes :text,type: 'multi_field' do indexes :processed,analyzer: 'snowball' indexes :phone,analyzer: 'phonetic_analyzer' indexes :raw,analyzer: 'keyword' end end end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。