美文网首页程序猿阵线联盟-汇总各类技术干货
spring data es 通过原生dsl 语句查询

spring data es 通过原生dsl 语句查询

作者: 良人与我 | 来源:发表于2019-05-09 10:00 被阅读104次

想要在代码里使用es 的 query dsl 语句。
因为写好了 query dsl 语句,再用程序翻译 挺麻烦的。

在官网找到了 wrapper query 刚好可以满足,将 json 串作为 query 的参数。
https://www.elastic.co/guide/en/elasticsearch/reference/current/specialized-queries.html

wrapper query

A query that accepts other queries as json or yaml string.

用代码测试下

@Test
public void testtest() {
  SearchRequestBuilder searchRequestBuilder;
  String query = " { \"query\":{\"match_all\" : {\"boost\" : 1.0}}}";
  WrapperQueryBuilder wrapperQueryBuilder = QueryBuilders.wrapperQuery(query);
  searchRequestBuilder = elasticsearchTemplate.getClient().prepareSearch("test_customer");
  searchRequestBuilder.setQuery(QueryBuilders.wrapperQuery(query));
  SearchResponse response = searchRequestBuilder.execute().actionGet();
}

报了异常

ParsingException[no [query] registered for [query]

在官网找到了答案
https://discuss.elastic.co/t/parsingexception-in-elastic-5-0-0/64626
有人也遇到了同样的问题。

image.png
image.png

原来需要这样写

String query = "{"match_all":{}}";

因为QueryBuilders 本身就会包装上 query。

参考地址
https://discuss.elastic.co/t/parsingexception-in-elastic-5-0-0/64626

https://stackoverflow.com/questions/20167976/elasticsearch-no-query-registered-for-query/56051064#56051064

相关文章

  • spring data es 通过原生dsl 语句查询

    想要在代码里使用es 的 query dsl 语句。因为写好了 query dsl 语句,再用程序翻译 挺麻烦...

  • Request Body Search

    介绍 本章会介绍怎样将查询语句通过http request body发送给es,并介绍简单的DSL 分页 使用fr...

  • Elasticsearch 查询语法 --- 2022-04-0

    通过ES查询表达式(Query DSL),可以实现复杂的查询功能,ES查询表达式主要由JSON格式编写,可以灵活的...

  • spring-data的Dsl查询

    第一步, 生成查询对象在一个jpa项目中加入如下依赖和配置: 如果报找不到Inject类还需要加入: 然后去命令行...

  • Spring Data JPA 基本使用

    JPA查询传递参数和对象 参数 对象 通过spring-data-jpa进行复杂对象查询 通过spring-dat...

  • ES搜索(二)query查询

    ES可以使用URI或DSL进行查询 URI 由于DSL可以提供更多功能,以及可视化更好,一般都使用DSL进行查询 ...

  • Spring Data JPA进阶

    Spring Data JPA进阶 目录 ddl属性配置 通过解析方法名查询 关联查询 spring.jpa.pr...

  • 29.Kibana基础-2

    29.1 按字段过滤 29.2 DSL查询 还可以编辑一个DSL查询语句,用于过滤筛选,例如: 29.3 查看文档...

  • ElasticSearch查询DLS

    查询和过滤的区别 ES提供基于JSON的完整DSL来定义查询,查询DSL包括两种子句:叶查询子句:在特定的字段上查...

  • swagger

    spring-data的三种查询 原生态自带查询 常用的方法名查询 常用方法名总结: 自定义JPQL查询

网友评论

    本文标题:spring data es 通过原生dsl 语句查询

    本文链接:https://www.haomeiwen.com/subject/dvsioqtx.html