easy-es 查詢

分詞檢索

ES原生 Easy-Es 類型 是否支持分詞 描述
term eq keyword類型 完全匹配,查詢條件必須都是text分詞中的,且不能多余,多個(gè)分詞時(shí)必須連續(xù),順序不能顛倒。
wildcard like/likeLeft/likeRight 不支持 根據(jù) API 模糊匹配,like全模糊,likeLeft左模糊,likeRight右模糊。
match match text類型 完全匹配,match分詞結(jié)果和text的分詞結(jié)果有相同的即可,不考慮順序。
matchPhrase matchPhrase text類型 完全匹配,matchPhrase的分詞結(jié)果必須在text字段分詞中都包含且順序必須都相同,而且必須都是連續(xù)的。
matchPhrasePrefixQuery matchPhrasePrefixQuery 不支持 matchPhrasePrefix與matchPhrase相同,除了它允許在文本的最后一個(gè)詞上的前綴匹配。
multiMatchQuery multiMatchQuery text類型 全字段分詞匹配,可實(shí)現(xiàn)全文檢索功能。
queryStringQuery queryStringQuery text類型 完全匹配,queryString中的分詞結(jié)果至少有一個(gè)在text字段的分詞結(jié)果中,不考慮順序。
prefixQuery prefixQuery text類型 完全匹配,只要分詞后的詞條中有詞條滿足前綴條件即可。

MySQL和Easy-Es語(yǔ)法對(duì)照表

MySQL Easy-Es es-DSL/es java api
and and boolQueryBuilder.must(queryBuilder) 計(jì)算得分
and filter boolQueryBuilder.filter(queryBuilder) 不計(jì)算得分
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
... ... ...

這樣的格式更易于閱讀和比較,使得每個(gè)功能對(duì)應(yīng)的關(guān)鍵字都清晰地列出來(lái)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容