easy-es 查询

分词检索

ES原生 Easy-Es 类型 是否支持分词 描述
term eq keyword类型 完全匹配,查询条件必须都是text分词中的,且不能多余,多个分词时必须连续,顺序不能颠倒。
wildcard like/likeLeft/likeRight 不支持 根据 API 模糊匹配,like全模糊,likeLeft左模糊,likeRight右模糊。
match match text类型 完全匹配,match分词结果和text的分词结果有相同的即可,不考虑顺序。
matchPhrase matchPhrase text类型 完全匹配,matchPhrase的分词结果必须在text字段分词中都包含且顺序必须都相同,而且必须都是连续的。
matchPhrasePrefixQuery matchPhrasePrefixQuery 不支持 matchPhrasePrefix与matchPhrase相同,除了它允许在文本的最后一个词上的前缀匹配。
multiMatchQuery multiMatchQuery text类型 全字段分词匹配,可实现全文检索功能。
queryStringQuery queryStringQuery text类型 完全匹配,queryString中的分词结果至少有一个在text字段的分词结果中,不考虑顺序。
prefixQuery prefixQuery text类型 完全匹配,只要分词后的词条中有词条满足前缀条件即可。

MySQL和Easy-Es语法对照表

MySQL Easy-Es es-DSL/es java api
and and boolQueryBuilder.must(queryBuilder) 计算得分
and filter boolQueryBuilder.filter(queryBuilder) 不计算得分
or or boolQueryBuilder.should(queryBuilder)
! not boolQueryBuilder.mustNot(queryBuilder)
= eq term
> gt QueryBuilders.rangeQuery('es field').gt()
>= ge QueryBuilders.rangeQuery('es field').gte()
< lt QueryBuilders.rangeQuery('es field').lt()
<= le QueryBuilders.rangeQuery('es field').lte()
like '%field%' like QueryBuilders.wildcardQuery(field,value)
not like '%field%' notLike must not wildcardQuery(field,value)
like '%field' likeLeft QueryBuilders.wildcardQuery(field,*value)
like 'field%' likeRight QueryBuilders.wildcardQuery(field,value*)
between between QueryBuilders.rangeQuery('es field').from(xx).to(xx)
is null isNull must not QueryBuilders.existsQuery(field)
in in QueryBuilders.termsQuery(" xx es field", xx)
group by groupBy AggregationBuilders.terms()
order by orderBy fieldSortBuilder.order(ASC/DESC)
min min AggregationBuilders.min
max max AggregationBuilders.max
avg avg AggregationBuilders.avg
sum sum AggregationBuilders.sum
order by xxx asc orderByAsc fieldSortBuilder.order(SortOrder.ASC)
order by xxx desc orderByDesc fieldSortBuilder.order(SortOrder.DESC)
join nested QueryBuilders.nestedQuery()
- match matchQuery
- matchPhrase QueryBuilders.matchPhraseQuery
- matchPrefix QueryBuilders.matchPhrasePrefixQuery
- queryStringQuery QueryBuilders.queryStringQuery
select * matchAllQuery QueryBuilders.matchAllQuery()
- highLight HighlightBuilder.Field
... ... ...

这样的格式更易于阅读和比较,使得每个功能对应的关键字都清晰地列出来。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容