ElasticSearch6.8.2版本 多个must should混在一起查询

来源:11-4 安全控制_基本认证

小耶哥

2019-12-31

瓦力老师你好
1.我现在使用的是6.8.2版本
2. should must 多个查询. should是多个字段匹配一个值
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

// 过滤1个
boolQueryBuilder.filter(QueryBuilders.termQuery(ProductIndexKey.STATUS, StatusEnum.ACTIVE.getCode()));

// should条件 两个
WildcardQueryBuilder queryBuilder_oeCode = QueryBuilders.wildcardQuery(
ProductIndexKey.OE_CODE,mallSearch.getKeywords() + SymbolConstants.STAR_SYMBOL);

WildcardQueryBuilder queryBuilder_brandCode = QueryBuilders.wildcardQuery(
ProductIndexKey.BRAND_CODE,mallSearch.getKeywords() + SymbolConstants.STAR_SYMBOL);

boolQueryBuilder.should(queryBuilder_oeCode);
boolQueryBuilder.should(queryBuilder_brandCode);
boolQueryBuilder.must(QueryBuilders.existsQuery(ProductIndexKey.TID_LIST));

3.这样的should must 多个在一起 我这样的写法对吗? 对于6.8版本

写回答

1回答

瓦力老师

2019-12-31

must就是SQL的AND,查询内容必须强关联,should类似SQL的OR,有可以增加score,影响关联关系,没有就不影响score

0
1
小耶哥
您这个问答 我们队es有些了解的都知道的, 想老师帮忙看下这个语句是否有问题 感谢 另外这个should must 各个版本是不是有很大的区别
2019-12-31
共1条回复

BAT大牛亲授 基于ElasticSearch的搜房网实战

ES+MySQL+Kafka,打造强力站内搜索

898 学习 · 285 问题

查看课程