【发布时间】:2013-08-28 05:24:35
【问题描述】:
我想执行这个exemple:
$ curl -XGET 'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'
Tire gem。有可能吗?
我的目标是搜索与另一个文档相关的文档。
【问题讨论】:
标签: ruby rubygems elasticsearch tire
我想执行这个exemple:
$ curl -XGET 'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'
Tire gem。有可能吗?
我的目标是搜索与另一个文档相关的文档。
【问题讨论】:
标签: ruby rubygems elasticsearch tire
它不是直接在轮胎中实现的。但是,Karmi 已将其实现为 tire-contrib 存储库中的轮胎扩展。
gem 'tire-contrib'
more_like_this_field(:tag, like_text, options = {min_doc_freq: 1})【讨论】:
好吧,互联网忘记包含这个调用的一个示例(包括源项目),所以这是它的一种风格。
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 参数。他们default to 2 and 5 respectively in ElasticSearch,这使得在测试时很容易混淆。
【讨论】: