这里说的模糊查询,其查询效果和mysql的Like相同。
比如我查询appName为bot-tts。mysql语法为

select * from table where appName like '%bot-tts%'

这样相关的数据可以查询出来了。但是ES有时候也可能需要相同的查询效果。
其DSL语法如下:

GET sdl/_search
{
"query":{
	"wildcard":{
			"appName.keyword":{
				"value":"*bot-tts*"
			}
		}
	}
}

Spring Data ES 查询语句组装:

if (!StringUtils.isEmpty(overviewDto.getAppName())) {
    WildcardQueryBuilder appName = QueryBuilders.wildcardQuery("appName.keyword", "*" + overviewDto.getAppName() + "*");
	boolQuery.must(appName);
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐