easy-es 查询
作者:
程序男保姆 | 来源:发表于
2024-04-15 18:23 被阅读0次
分词检索
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 |
... |
... |
... |
这样的格式更易于阅读和比较,使得每个功能对应的关键字都清晰地列出来。
本文标题:easy-es 查询
本文链接:https://www.haomeiwen.com/subject/rchitjtx.html
网友评论