使用Tire / ElasticSearch设置MoreLikeThis查询

时间:2013-09-02 18:44:27

标签: ruby-on-rails elasticsearch tire

我正在使用Tire / ElasticSearch来索引我的rails应用程序中的模型。

我正在尝试在索引"文章" /字段内容

上设置一个非常简单的more_like_this查询,如下所示
s = Tire.search 'articles' do
  query do
    mlt_field do
      content   { string 'electricity' }
    end
  end
end

当我运行此操作时,我收到此错误

undefined method `mlt_field' for #<Tire::Search::Query:0x000001013657e8 @value={}>

有没有人知道如何设置它?我已经查看了非常好的轮胎文档但我无法看到任何帮助。我发现了一个类似的查询fuzzy_like_this和Github问题说在README中搜索模糊,但我找不到任何对此的引用。

2 个答案:

答案 0 :(得分:0)

最后,我使用直接查询语法,似乎没有任何错误。

s1 = Tire.search 'articles', :query =>
    { :mlt_field =>
          { :content =>
                { :like_text => 'electricity',
                  :min_term_freq => 1,
                  :analyzer => :mlt_content
                }
          }
    }

答案 1 :(得分:0)

我认为这次失败是因为更喜欢这种支持位于tire-contrib,这是Tire核心的独立可选宝石。

mlt_field定义为here in tire-contrib