在java中使用String查询Elasticsearch

时间:2013-11-19 05:48:13

标签: java elasticsearch

我正在使用Elasticsearch maven jar文件来查询Elasticsearch。但现在我想使用完整生成的查询字符串查询elasticsearch:

查询:

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

如何使用上述查询字符串在java中查询elasticsearch?

2 个答案:

答案 0 :(得分:4)

以下代码准备了一个boolquery。您应该创建一个SearchRequestBuilder来执行它。

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

如果您想将查询用作字符串而不在代码中构建它,则可以使用以下内容;

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();

答案 1 :(得分:1)

我使用以下代码使用JSON字符串查询Elasticsearch。

read userInput
echo ${userInput} | tr '[:upper:]' '[:lower:]'