`

elasticsearch java API ------使用More like this实现基于内容的推荐

阅读更多

elasticsearch java API ------使用More like this实现基于内容的推荐

 

 

先看一个查询请求的json例子:

 

[plain] view plaincopy
 
 
  1. {   
  2.     "more_like_this" : {   
  3.         "fields" : ["title", "content"],   
  4.         "like_text" : "text like this one",   
  5.     }   
  6. }  
其中:

 

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调用,一共有三种调用方式,不过本质上都是一样的,只不过是做了一些不同程度的封装。

 

[java] view plaincopy
 
 
  1. MoreLikeThisRequestBuilder mlt = new MoreLikeThisRequestBuilder(client, "indexName""indexType""id");  
  2. mlt.setField("title");//匹配的字段  
  3. SearchResponse response = client.moreLikeThis(mlt.request()).actionGet();  
这种是在查询与某个id的文档相似的文档。这个接口是直接在client那调用的,比较特殊。还有两种就是构造Query进行查询

 

 

[java] view plaincopy
 
 
  1. MoreLikeThisQueryBuilder query = QueryBuilders.moreLikeThisQuery();  
  2. query.boost(1.0f).likeText("xxx").minTermFreq(10);  
这里的boost、likeText方法完全和上面的参数对应的。下面这种就是把要匹配的字段作为参数传进来,参数和MoreLikeThisQueryBuilder是一样的。

 

 

[java] view plaincopy
 
 
  1. MoreLikeThisFieldQueryBuilder query = QueryBuilders.moreLikeThisFieldQuery("fieldNmae");  
分享到:
评论

相关推荐

    elasticsearch-rest-high-level-client-6.8.3-API文档-中文版.zip

    包含翻译后的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...

    elasticsearch-6.2.3-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-6.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.2.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...

    elasticsearch-6.3.0-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.3.0; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...

    elasticsearch-rest-client-6.8.3-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-rest-client-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.8.3; 标签:elasticsearch、client、rest、中文...

    ElasticSearch Java API 中文文档

    标题《ElasticSearch Java API 中文文档》表明本篇文档的主要内容是关于ElasticSearch的Java API的中文使用说明和相关知识点介绍。ElasticSearch是一个基于Lucene构建的开源搜索引擎,它提供了一个分布式、多用户...

    elasticsearch-rest-high-level-client-6.8.3-API文档-中英对照版.zip

    包含翻译后的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-6.8.3-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch:6.8.3; 标签:elasticsearch、中文文档、jar包、java; 使用方法:解压翻译后的API...

    elasticsearch-x-content-6.3.0-API文档-中英对照版.zip

    包含翻译后的API文档:elasticsearch-x-content-6.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.3.0; 标签:elasticsearch、x、content、中英对照...

    elasticsearch-rest-client-6.3.0-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-rest-client-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.3.0; 标签:elasticsearch、client、rest、中文...

    elasticsearch-rest-client-6.3.0-API文档-中英对照版.zip

    包含翻译后的API文档:elasticsearch-rest-client-6.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.3.0; 标签:elasticsearch、client、...

    elasticsearch-x-content-6.3.0-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-x-content-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.3.0; 标签:elasticsearch、x、content、中文文档、jar包、...

    elasticsearch-rest-client-6.2.3-API文档-中英对照版.zip

    包含翻译后的API文档:elasticsearch-rest-client-6.2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.2.3; 标签:elasticsearch、client、...

    esapi-java-legacysource-esapi-2.1.0.1.zip

    ESAPI (Enterprise Security API) 是一个开源项目,由OWASP(Open Web Application Security Project)组织维护,旨在提供一套全面的、统一的安全编程接口,帮助Java开发者编写更安全的应用程序。这个压缩包“esapi-...

    elasticsearch-x-content-6.8.3-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-x-content-6.8.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-x-content:6.8.3; 标签:elasticsearch、x、content、中文文档、jar包、...

    7.17.1系列Elasticsearch的elasticsearch-analysis-ik分词器

    中文分词:elasticsearch-analysis-ik 是基于最大正向匹配算法实现的中文分词器。它能够将中文文本按照合理的单词边界进行分割,并提供高质量的分词结果。 词库扩展性:elasticsearch-analysis-ik 采用了可扩展的...

    elasticsearch-rest-client-6.8.3-API文档-中英对照版.zip

    包含翻译后的API文档:elasticsearch-rest-client-6.8.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch.client:elasticsearch-rest-client:6.8.3; 标签:elasticsearch、client、...

    esapi-2.1.0.1.zip(esapi-2.1.0.1.jar)

    在“esapi-2.1.0.1.zip”这个压缩包中,核心文件“esapi-2.1.0.1.jar”是ESAPI库的实现,用于集成到Java项目中。此JAR文件包含了所有必要的类和资源,使开发者能够利用ESAPI提供的功能来强化应用程序的安全性。例如...

    elasticsearch-cli-6.8.3-API文档-中英对照版.zip

    包含翻译后的API文档:elasticsearch-cli-6.8.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.elasticsearch:elasticsearch-cli:6.8.3; 标签:elasticsearch、cli、中英对照文档、jar包、java; ...

    elasticsearch-core-6.3.0-API文档-中文版.zip

    包含翻译后的API文档:elasticsearch-core-6.3.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.elasticsearch:elasticsearch-core:6.3.0; 标签:elasticsearch、core、中文文档、jar包、java; 使用方法:...

    elasticsearch-analysis-ik-7.10.0.zip下载

    在使用过程中,可以通过Elasticsearch的配置文件(如elasticsearch.yml)设置分词器参数,或者在创建索引时指定分词器类型。 总的来说,"elasticsearch-analysis-ik-7.10.0.zip"是Elasticsearch 7.10.0版的一个关键...

Global site tag (gtag.js) - Google Analytics