Grahesh Parkar
Grahesh Parkar

Reputation: 1027

Query Elasticsearch using String in java

I am using Elasticsearch maven jar file to query Elasticsearch. But now I want to query the elasticsearch using full generated query string:

query :

{
  "bool" : {
    "must" : [ {
      "term" : {
        "title" : "mercedes"
      }
    }, {
      "term" : {
        "Doors" : "2"
      }
    } ]
  }
}

How do I use the above query string to query elasticsearch in java?

Upvotes: 3

Views: 2560

Answers (2)

Green Lei
Green Lei

Reputation: 3422

I use the following code to query Elasticsearch using JSON string.

SearchResponse response = client.prepareSearch(yourIndexName)
            .setSource(yourJsonQueryString)
            .execute().actionGet();

Upvotes: 1

shy
shy

Reputation: 1410

Following code prepares a boolquery. You should create a SearchRequestBuilder to execute it.

BoolQueryBuilder boolQuery = new BoolQueryBuilder();
boolQuery.must(QueryBuilders.termQuery("title", "mercedes"));
boolQuery.must(QueryBuilders.termQuery("Doors", "2"));

If you want to use query as string without building it in code, you can use following;

String myQuery = "Your Query Here";
SearchSourceBuilder ssb= new SearchSourceBuilder();
search.query(myQuery);

SearchRequestBuilder srb; // You should define srb before next steps
srb.internalBuilder(ssb);
SearchResponse response = srb.execute().actionGet();

Upvotes: 4

Related Questions