You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So, this request speak for itself: I want to get all books published in defined year, by prefix.
And it works fine until title does not contain double quotes. For example if I want to get book published in 2000 year and with title : Name "name in quote" name .
Then I have got error [type=x_content_parse_exception, reason=[1:81] [bool] failed to parse field [must]]; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=x_content_parse_exception, reason=[1:81] [bool] failed to parse field [must]]]; nested: ElasticsearchException[Elasticsearch exception [type=json_parse_exception, reason=Unexpected character ('1' (code 49)): was expecting comma to separate Object entries
As workaround solution for problem, before request I have prepared string like return StringUtils.replace(value, "\"", "\\\\\"");
It doesn't seem like a good solution. I wish the framework would do this kind of thing, like jdbc does.
And I am not alone with a such problem, for example - Question on SO
Also, maybe useful link - Elastic forum
Dependency in my project - org.springframework.boot:spring-boot-starter-actuator:jar:2.4.3:compile org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:2.4.3:compile
Thank You for attention!
Have a nice day!
The text was updated successfully, but these errors were encountered:
Hello!
I have trouble with custom query in my repository, in order to reproduce my problem let's imagine that we have repository with books,
@Repository public interface BookRepository extends ElasticsearchRepository<BookDto, String> { @Query("{\"bool\":{\"must\": [{\"match\": {\"year\" : ?0}},{\"prefix\": {\"title\" : \"?1\"}}]}}") List<BookDto> findBookByYearAndPrefixTitle(final String year, final String title); }
So, this request speak for itself: I want to get all books published in defined year, by prefix.
And it works fine until title does not contain double quotes. For example if I want to get book published in 2000 year and with title : Name "name in quote" name .
Then I have got error
[type=x_content_parse_exception, reason=[1:81] [bool] failed to parse field [must]]; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=x_content_parse_exception, reason=[1:81] [bool] failed to parse field [must]]]; nested: ElasticsearchException[Elasticsearch exception [type=json_parse_exception, reason=Unexpected character ('1' (code 49)): was expecting comma to separate Object entries
As workaround solution for problem, before request I have prepared string like
return StringUtils.replace(value, "\"", "\\\\\"");
It doesn't seem like a good solution. I wish the framework would do this kind of thing, like jdbc does.
And I am not alone with a such problem, for example - Question on SO
Also, maybe useful link - Elastic forum
Dependency in my project -
org.springframework.boot:spring-boot-starter-actuator:jar:2.4.3:compile org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:2.4.3:compile
Thank You for attention!
Have a nice day!
The text was updated successfully, but these errors were encountered: