Nacido para simplificar el desarrollo
Easy-Es es un conjunto de herramientas poderosamente mejorado de RestHighLevelClient para simplificar el desarrollo. Este kit de herramientas proporciona algunas funciones eficientes, útiles y listas para usar para ElasticSearch. Al utilizar Easy-Es, puede utilizar la sintaxis MySQL para completar consultas Es. Úselo puede ahorrarle tiempo de desarrollo de manera efectiva.
sitio web easy-es https://en.easy-es.cn/
gitcode fácil-es https://gitcode.com/dromara/easy-es
casa rural easy-es https://gitee.com/dromara/easy-es
fácil-es github https://github.com/dromara/easy-es
sitio web de dromara https://dromara.org/
página de inicio de dromara gitee https://gitee.com/dromara/
Demanda: consultar todos los documentos cuyo título sea "Hola" y el autor sea "Chico".
// Use Easy-Es to complete the query with only 1 lines of code
List < Document > documents = documentMapper . selectList ( EsWrappers . lambdaQuery ( Document . class ). eq ( Document :: getTitle , "Hi" ). eq ( Document :: getCreator , "Guy" ));
// Query with RestHighLevelClient requires 11 lines of code, not including parsing JSON code
String indexName = "document" ;
SearchRequest searchRequest = new SearchRequest ( indexName );
BoolQueryBuilder boolQueryBuilder = QueryBuilders . boolQuery ();
TermQueryBuilder titleTerm = QueryBuilders . termQuery ( "title" , "Hi" );
TermsQueryBuilder creatorTerm = QueryBuilders . termsQuery ( "creator" , "Guy" );
boolQueryBuilder . must ( titleTerm );
boolQueryBuilder . must ( creatorTerm );
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder ();
searchSourceBuilder . query ( boolQueryBuilder );
searchRequest . source ( searchSourceBuilder );
try {
SearchResponse searchResponse = restHighLevelClient . search ( searchRequest , RequestOptions . DEFAULT );
// Then parse the DocumentList from searchResponse in various ways, omitting these codes...
} catch ( IOException e ) {
e . printStackTrace ();
}
Lo anterior es solo una simple demostración de consulta. Cuanto más compleja sea la escena de consulta real, mejor será el efecto, que puede ahorrar de 3 a 5 veces la cantidad de código en promedio.
Última versión:
Agregar dependencia de Easy-Es
< dependency >
< groupId >org.dromara.easy-es</ groupId >
< artifactId >easy-es-boot-starter</ artifactId >
< version >Latest Version</ version >
</ dependency >
compile group : ' org.dromara.easy-es ' , name : ' easy-es-boot-starter ' , version : ' Latest Version '
Agregar archivo de mapeador extiende la interfaz BaseEsMapper
public interface DocumentMapper extends BaseMapper < User > {
}
Úselo
LambdaEsQueryWrapper < Document > wrapper = new LambdaEsQueryWrapper <>();
wrapper . eq ( Document :: getTitle , "Hello World" )
. eq ( Document :: getCreator , "Guy" );
List < Document > documentList = documentMapper . selectList ();
Easy-Es ejecutará la siguiente consulta:
{ "query" :{ "bool" :{ "must" :[{ "term" :{ "title" :{ "value" : " Hello World " , "boost" : 1.0 }}},{ "term" :{ "creator" :{ "value" : " Guy " , "boost" : 1.0 }}}], "adjust_pure_negative" : true , "boost" : 1.0 }}}
La sintaxis de esta consulta en MySQL es:
SELECT * FROM document WHERE title = ' Hello World ' AND creator = ' Guy '
Esta presentación es sólo una pequeña parte de las funciones de Easy-Es. Si desea obtener más información, consulte la documentación.
mysql | Es fácil | Es-DSL/Es java api |
---|---|---|
y | y | debe |
o | o | debería |
= | ecuación | término |
!= | nordeste | boolQueryBuilder.mustNot(queryBuilder) |
> | gt | QueryBuilders.rangeQuery('es campo').gt() |
>= | ge | .rangeQuery('es campo').gte() |
< | es | .rangeQuery('es campo').lt() |
<= | le | .rangeQuery('es campo').lte() |
como '%campo%' | como | QueryBuilders.wildcardQuery(campo, valor ) |
no como '%campo%' | no me gusta | no debe comodínQuery(campo, valor ) |
como '%campo' | comoIzquierda | QueryBuilders.wildcardQuery(campo,*valor) |
como 'campo%' | me gusta | QueryBuilders.wildcardQuery(campo,valor*) |
entre | entre | QueryBuilders.rangeQuery('es campo').from(xx).to(xx) |
no entre | no entre | no debe QueryBuilders.rangeQuery('es field').from(xx).to(xx) |
es nulo | es nulo | no debe QueryBuilders.existsQuery(campo) |
no es nulo | no es nulo | QueryBuilders.existsQuery(campo) |
en | en | QueryBuilders.termsQuery(" xx es campo", xx) |
no en | no en | no debe QueryBuilders.termsQuery(" xx es campo", xx) |
agrupar por | grupoPor | AggregationBuilders.terms() |
ordenar por | ordenar por | campoSortBuilder.order(ASC/DESC) |
mín. | mín. | AgregaciónBuilders.min |
máximo | máximo | AgregaciónBuilders.max |
promedio | promedio | AggregationBuilders.avg |
suma | suma | AggregationBuilders.sum |
ordenar por xxx asc | ordenarPorAsc | campoSortBuilder.order(OrdenarOrden.ASC) |
ordenar por xxx desc | ordenarPorDesc | campoSortBuilder.order(OrdenarOrden.DESC) |
- | fósforo | coincidenciaQuery |
- | frase de coincidencia | QueryBuilders.matchPhraseQuery |
- | partidoPrefijo | QueryBuilders.matchPhrasePrefixQuery |
- | consultaCadenaConsulta | QueryBuilders.queryStringQuery |
seleccionar * | coincidir con todas las consultas | QueryBuilders.matchAllQuery() |
- | destacar | ResaltarBuilder.Field |
... | ... | ... |
Donar Easy-Es
Easy-Es está bajo la licencia Apache 2.0. Consulte el archivo de licencia Apache 2.0 para obtener más detalles.