0

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

4

2 回答 2

0

最后我求助于使用直接查询语法,这似乎没有引发任何错误。

s1 = Tire.search 'articles', :query =>
    { :mlt_field =>
          { :content =>
                { :like_text => 'electricity',
                  :min_term_freq => 1,
                  :analyzer => :mlt_content
                }
          }
    }
于 2013-09-04T10:54:07.793 回答
0

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

mlt_field在轮胎贡献中定义。

于 2015-08-13T09:25:26.440 回答