ruby-on-rails – Custom Analyzer elasticsearch-rails

发布时间:2020-01-14 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了ruby-on-rails – Custom Analyzer elasticsearch-rails脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的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

总结

以上是脚本之家为你收集整理的ruby-on-rails – Custom Analyzer elasticsearch-rails全部内容,希望文章能够帮你解决ruby-on-rails – Custom Analyzer elasticsearch-rails所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!