【问题标题】:Custom Analyzer in Tire (ElasticSearch)轮胎中的自定义分析器 (ElasticSearch)
【发布时间】:2013-06-17 22:35:41
【问题描述】:

我正在尝试创建此自定义分析器,但由于某种原因,我收到了 Analyzer [] not found for field [] 错误...我环顾四周并尝试了不同的实现,我认为我有正确的语法...在这里是:

settings :number_of_shards => 5,
         :number_of_replicas => 2,
         :analysis => {
           :analyzer => {
             :ticker_analyzer => { 
               "type"      => 'custom',
               "tokenizer" => 'ticker_pattern',
               "filter"    => [ 'word_delimiter_filter', 'standard' ]
             }
           },
           :filter => {
             :word_delimiter_filter => {
               "type"                => 'word_delimiter',
               "preserve_original"   => true
             }
           },
           :tokenizer => {
             :ticker_pattern => {
               "type"      => 'pattern',
               "pattern"   => '\w+'
             }
           }
         } do
  mapping do
    # ... some more indexes that work fine, with regular analyzers
    indexes :company_ticker,      type: 'string',   boost: 5.0,   analyzer: 'ticker_analyzer',  as: 'index_company_ticker'
  end
end

所以我收到错误Analyzer [ticker_analyzer] not found for field [company_ticker]

任何想法为什么?

此外,我还看到了一些不需要将块传递给settings 选项的示例。我会关闭settings 并在之后定义mapping 并且它会工作吗? (我在其他人发布代码 sn-ps 时看到过这种情况......)

谢谢!

-弗拉德

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 elasticsearch tire


【解决方案1】:

好的,这就是我遇到的实际问题,以及为什么这不起作用。
这是因为我试图创建一个索引,该索引将使用来自该模型的映射(我没有尝试执行 Model.create_elasticsearch_index),而是使用类似

index = Tire::Index.new('swap_index')
index.create(:mappings => MyModel.tire.mapping_to_hash)
index.import(mymodel_entries)
# and then do some swapping between the old index and the new one, through alias'es

好吧,问题是我没有将settings 传递给我的新索引。我只是从 MyModel 传递了 mappings,而不是 settings。所以,正确的做法是这样

index.create(:settings => MyMode.tire.settings, :mappings => MyModel.tire.mapping_to_hash)

这解决了我遇到的错误。

(我的示例在我的情况下仍然不起作用,因为我的情况可能会损坏分析器,但我只是想帮助可能有类似问题的用户)

谢谢你,
弗拉德

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2013-09-26
    • 2013-07-23
    • 2014-08-08
    相关资源
    最近更新 更多