I am having a deadlock situation in Elasticsearch. Can we skip one particular field while doing the search without disabling it from the mapping?
I am having a deadlock situation in Elasticsearch. Can we skip one particular field while doing the search without disabling it from the mapping?
Yeah, why not, you can give field names in which you want to search. refer multi-match for example
{
"query": {
"multi_match" : {
"query": "this is a test",
"fields": [ "subject", "message" ] --> note the fields in which ES search, while mapping may have n number of fields.
}
}
}
Java code for multi-match query:
SearchRequest searchRequest = new SearchRequest(USERS_INDEX_NAME);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// Note field names , like firstName, lastName etc
MultiMatchQueryBuilder multiMatchQueryBuilder = new MultiMatchQueryBuilder(searchTerm, "firstName", "lastName",
"password", "emailId", "userId", "mobileNumber");
multiMatchQueryBuilder.operator(Operator.AND);
searchSourceBuilder.query(multiMatchQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = esclient.search(searchRequest, RequestOptions.DEFAULT);
return getUserSearchResults(searchResponse);