3

我想执行这个例子

$ curl -XGET 'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'

轮胎宝石。有可能吗?

我的目标是搜索与另一个文档相关的文档。

4

2 回答 2

3

它不是直接在轮胎中实现的。然而,Karmi已将其实现为轮胎贡献库中的轮胎扩展。

  • 源代码:more_like_this.rb
  • 通过添加添加gem 'tire-contrib'
  • more_like_this_field(:tag, like_text, options = {min_doc_freq: 1})
于 2013-08-25T18:58:33.377 回答
0

好吧,互联网忘记包含这个调用的一个例子(包括源项目),所以这是它的一种风格。

related_articles = Article.search {
  query {
    more_like_this("#{current_article.title} #{current_article.body}",
      fields: [:title, :description],
      percent_terms_to_match: 0.1,
      min_term_freq: 1,
      min_doc_freq: 1
    )
  }
}
puts related_articles.results.count
puts related_articles.results.first.title if related_articles.present?

这里的问题是上面的 min_term_freq 和 min_doc_freq 参数。在 ElasticSearch 中它们分别默认为 2 和 5,这使得在测试时很容易混淆。

于 2015-08-13T10:25:35.313 回答