gpt4 book ai didi

elasticsearch - elasticsearch spring数据@query注释

转载 作者:行者123 更新时间:2023-12-03 00:42:13 24 4
gpt4 key购买 nike

我正在尝试在Elasticsearch Spring数据中使用@query注释进行复杂查询,但是当我尝试以下简单查询时出现错误

@Query(value="{'bool':{'must':{'field':{'name':?0}}}}")
Segment findByName(String name);

堆栈跟踪
[ERROR] com.innvo.aop.logging.LoggingAspect - Exception in 
com.innvo.web.rest.RouteResource.elastic() with cause = null and
exception {}
org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to
execute phase [dfs], all shards failed; shardFailures {[6JK9sflAQK6fSCuDr-
AgkQ][segment][0]: SearchParseException[[segment][0]: from[0],size[10]:
Parse Failure [Failed to parse source
[{"from":0,"size":10,"query_binary":
"eydib29sJzp7J211c3QnOlt7J3Rlcm0nOnsnaWQnOic1MjAwJ319XX19"}]]];
nested: QueryParsingException[[segment] Failed to parse]; nested:
JsonParseException[Unexpected character (''' (code 39)): was expecting
either valid name character (for unquoted name) or double-quote (for
quoted) to start field name
at [Source: [B@4cc4c177; line: 1, column: 3]]; }{[6JK9sflAQK6fSCuDr-
AgkQ][segment][1]: SearchParseException[[segment][1]: from[0],size[10]:
Parse Failure [Failed to parse source
[{"from":0,"size":10,"query_binary":
"eydib29sJzp7J211c3QnOlt7J3Rlcm0nOnsnaWQnOic1MjAwJ319XX19"}]]]; nested:
QueryParsingException[[segment] Failed to parse];
nested:JsonParseException[Unexpected character (''' (code 39)): was
expecting either valid name character (for unquoted name) or double-quote
(for quoted) to start field name
at [Source: [B@31702d66; line: 1, column: 3]]; }{[6JK9sflAQK6fSCuDr-
AgkQ][segment][2]: SearchParseException[[segment][2]: from[0],size[10]:
Parse Failure [Failed to parse source
[{"from":0,"size":10,"query_binary":
"eydib29sJzp7J211c3QnOlt7J3Rlcm0nOnsnaWQnOic1MjAwJ319XX19"}]]]; nested:
QueryParsingException[[segment] Failed to parse]; nested:
JsonParseException[Unexpected character (''' (code 39)): was expecting
either valid name character (for unquoted name) or double-quote (for
quoted) to start field name

最佳答案

@Query批注中,您只需要使用转义的双引号而不是单引号:

@Query(value="{\"bool\":{\"must\":{\"term\":{\"name\":\"?0\"}}}}")
Segment findByName(String name);

另请注意,由于 field不是有效的查询,因此我已将 term替换为 match(或也可以使用 field)。

关于elasticsearch - elasticsearch spring数据@query注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34655968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com