elasticsearch java API ------使用More like this实现基于内容的推荐
基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档。Lucene的api中有实现查询文章相似度的接口,叫MoreLikeThis。Elasticsearch封装了该接口,通过Elasticsearch的More like this查询接口,我们可以非常方便的实现基于内容的推荐。
先看一个查询请求的json例子:
- {
- "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:设置使用的分词器,默认是使用该字段指定的分词器
下面介绍下如何用java api调用,一共有三种调用方式,不过本质上都是一样的,只不过是做了一些不同程度的封装。
- MoreLikeThisRequestBuilder mlt = new MoreLikeThisRequestBuilder(client, "indexName", "indexType", "id");
- mlt.setField("title");//匹配的字段
- SearchResponse response = client.moreLikeThis(mlt.request()).actionGet();
- MoreLikeThisQueryBuilder query = QueryBuilders.moreLikeThisQuery();
- query.boost(1.0f).likeText("xxx").minTermFreq(10);
- MoreLikeThisFieldQueryBuilder query = QueryBuilders.moreLikeThisFieldQuery("fieldNmae");
相关推荐
包含翻译后的API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-high-level-client:6.8.3; 标签:elasticsearch...
包含翻译后的API文档:elasticsearch-6.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.2.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...
包含翻译后的API文档:elasticsearch-rest-client-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.8.3; 标签:elasticsearch、client、rest、中文...
包含翻译后的API文档:elasticsearch-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.3.0; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...
标题《ElasticSearch Java API 中文文档》表明本篇文档的主要内容是关于ElasticSearch的Java API的中文使用说明和相关知识点介绍。ElasticSearch是一个基于Lucene构建的开源搜索引擎,它提供了一个分布式、多用户...
包含翻译后的API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-high-level-client:6.8.3; 标签:...
包含翻译后的API文档:elasticsearch-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.8.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...
包含翻译后的API文档:elasticsearch-x-content-6.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.3.0; 标签:elasticsearch、x、content、中英对照...
包含翻译后的API文档:elasticsearch-rest-client-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.3.0; 标签:elasticsearch、client、rest、中文...
包含翻译后的API文档:elasticsearch-rest-client-6.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.3.0; 标签:elasticsearch、client、...
包含翻译后的API文档:elasticsearch-x-content-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.3.0; 标签:elasticsearch、x、content、中文文档、jar包、...
包含翻译后的API文档:elasticsearch-rest-client-6.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.2.3; 标签:elasticsearch、client、...
ESAPI (Enterprise Security API) 是一个开源项目,由OWASP(Open Web Application Security Project)组织维护,旨在提供一套全面的、统一的安全编程接口,帮助Java开发者编写更安全的应用程序。这个压缩包“esapi-...
包含翻译后的API文档:elasticsearch-x-content-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.8.3; 标签:elasticsearch、x、content、中文文档、jar包、...
在“esapi-2.1.0.1.zip”这个压缩包中,核心文件“esapi-2.1.0.1.jar”是ESAPI库的实现,用于集成到Java项目中。此JAR文件包含了所有必要的类和资源,使开发者能够利用ESAPI提供的功能来强化应用程序的安全性。例如...
中文分词:elasticsearch-analysis-ik 是基于最大正向匹配算法实现的中文分词器。它能够将中文文本按照合理的单词边界进行分割,并提供高质量的分词结果。 词库扩展性:elasticsearch-analysis-ik 采用了可扩展的...
包含翻译后的API文档:elasticsearch-rest-client-6.8.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.8.3; 标签:elasticsearch、client、...
Elasticsearch(ES)是一款功能强大的全文搜索引擎,广泛应用于数据检索、数据分析等领域。为了提高搜索的准确性和便利性,Elasticsearch提供了丰富的分析插件,其中"elasticsearch-analysis-dynamic-synonym-7.2.0...
包含翻译后的API文档:elasticsearch-cli-6.8.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch:elasticsearch-cli:6.8.3; 标签:elasticsearch、cli、中英对照文档、jar包、java; ...
包含翻译后的API文档:elasticsearch-core-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-core:6.3.0; 标签:elasticsearch、core、中文文档、jar包、java; 使用方法:...