【问题标题】:Setting up a MoreLikeThis Query using Tire/ElasticSearch使用 Tire/ElasticSearch 设置 MoreLikeThis 查询
【发布时间】:2015-08-13 17:25:26
【问题描述】:

我正在使用 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 问题说要在自述文件中搜索模糊,但我找不到对此的任何参考。

【问题讨论】:

    标签: ruby-on-rails elasticsearch tire


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我认为这失败了,因为 More Like This 支持在 tire-contrib 中,这是轮胎核心的一个单独的可选宝石。

      mlt_field 定义为 here in tire-contrib。

      【讨论】:

        猜你喜欢
        • 2013-08-28
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 2012-12-17
        • 2012-07-25
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        相关资源
        最近更新 更多