elasticsearch使用More like this實現基於內容的推薦
阿新 • • 發佈:2017-09-05
無限 itl percent 結果 忽略 class terms query col
基於內容的推薦通常是給定一篇文檔信息,然後給用戶推薦與該文檔相識的文檔。Lucene的api中有實現查詢文章相似度的接口,叫MoreLikeThis。Elasticsearch封裝了該接口,通過Elasticsearch的More like this查詢接口,我們可以非常方便的實現基於內容的推薦。
{ "more_like_this" : { "fields" : ["title", "content"], "like_text" : "text like this one", } }
其中:
fields是要匹配的字段,如果不填的話默認是_all字段
like_text是匹配的文本。
除此之外還可以添加下面條件來調節結果
percent_terms_to_match:匹配項(term)的百分比,默認是0.3
min_term_freq:一篇文檔中一個詞語至少出現次數,小於這個值的詞將被忽略,默認是2
max_query_terms:一條查詢語句中允許最多查詢詞語的個數,默認是25
stop_words:設置停止詞,匹配時會忽略停止詞
min_doc_freq:一個詞語最少在多少篇文檔中出現,小於這個值的詞會將被忽略,默認是無限制
max_doc_freq:一個詞語最多在多少篇文檔中出現,大於這個值的詞會將被忽略,默認是無限制
min_word_len:最小的詞語長度,默認是0
max_word_len:最多的詞語長度,默認無限制
boost_terms:設置詞語權重,默認是1
boost:設置查詢權重,默認是1
analyzer:設置使用的分詞器,默認是使用該字段指定的分詞器
elasticsearch使用More like this實現基於內容的推薦