2013-08-25 3 views

ответ

3

Не применяется непосредственно в шинах. Однако Karmi реализовал его как расширение шины в репозитории tire-contrib.

  • Исходный код: more_like_this.rb
  • Добавить добавлением gem 'tire-contrib'
  • more_like_this_field(:tag, like_text, options = {min_doc_freq: 1})
+0

Спасибо за ваш авер. Я не уверен, чтобы создать аналогичный запрос с этим расширением. Ваш пример использует «like_text», а не идентификатор документа, чтобы найти связанный документ. –

+0

@BastienD Если я понял это правильно, то этот метод является частью Tire DSL, что означает, что вы можете добавить его в поисковый блок в шине, как и любой другой метод (запрос, размер и т. Д.). Идентификатор документа определяется в вашем запросе, и вы оставляете подобный текст нулевым. –

+0

Вы уже использовали этот драгоценный камень для этого? –

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 PARAMS выше. Они default to 2 and 5 respectively in ElasticSearch, что позволяет легко запутаться во время тестирования.

Смежные вопросы