Reputation: 524
I want to search docs which type=0
,how to build search query using java?
Upvotes: 1
Views: 705
Reputation: 1195
You can build your query using QueryBuilder in java.
Here's a sample code for the same:
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
TermQueryBuilder termQuery = new TermQueryBuilder("tasks.type", 0);
boolQuery.must(termQuery);
And then simply query using NativeSearchQueryBuilder, as shown in snippet below:
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
.withIndices("YOUR_INDEX_NAME")
.withTypes("EVENT_TYPE_NAME").withQuery(boolQuery)
.withPageable(new PageRequest(0, 60));
SearchQuery searchQuery = queryBuilder.build();
Above snippet will generate a search query to find the type field with value 0.
You can use ElasticSearchTemplate to query elastic Search as shown below:
ElasticSearchTemplate template = new ElasticSearchTemplate();
.queryForList(searchQuery, YOUR_CLASS.class).forEach(System.err::println);
So your final java code will look something like this:
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
TermQueryBuilder termQuery = new TermQueryBuilder("tasks.type", 0);
boolQuery.must(termQuery);
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
.withIndices("YOUR_INDEX_NAME")
.withTypes("EVENT_TYPE_NAME").withQuery(boolQuery)
.withPageable(new PageRequest(0, 60));
SearchQuery searchQuery = queryBuilder.build();
ElasticSearchTemplate template = new ElasticSearchTemplate();
template.queryForList(searchQuery, YOUR_CLASS.class).forEach(System.err::println);
Upvotes: 2