elasticsearch基本操作之--使用QueryBuilders进行查询

前缀查询matchQuery()

@Test
public void testPrefixQuery() {
    QueryBuilder queryBuilder = QueryBuilders.matchQuery("user", "kimchy");
    searchFunction(queryBuilder);
}

实测【对于中文文字来说,单个字或者2个都可以成功】

在这里插入图片描述

模糊查询fuzzyQuery()

/**
* 模糊查询
* 不能用通配符, 不知道干啥用
*/
@Test
public void testFuzzyQuery() {
QueryBuilder queryBuilder = QueryBuilders.fuzzyQuery("user", "kimch");
searchFunction(queryBuilder);
}

实现基于内容推荐,支持实现一句话相似文章查询moreLikeThisQuery()【实测会报错,不知道怎么使用】

/**
 * moreLikeThisQuery: 实现基于内容推荐, 支持实现一句话相似文章查询
 * {   
    "more_like_this" : {   
    "fields" : ["title", "content"],   // 要匹配的字段, 不填默认_all
    "like_text" : "text like this one",   // 匹配的文本
    }   
}     

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:设置使用的分词器,默认是使用该字段指定的分词器
 */
@Test
public void testMoreLikeThisQuery() {
    QueryBuilder queryBuilder = QueryBuilders.moreLikeThisQuery("user")
                        .like("kimchy");
//                            .minTermFreq(1)         //最少出现的次数
//                            .maxQueryTerms(12);        // 最多允许查询的词语
    searchFunction(queryBuilder);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值