No support for PercolateQueryBuilder in High Level Rest

I ended up using the XContentBuilder, maybe it can help you:

    String source = "{\n" +
            "    \"person\" : {\n" +
            "        \"match_phrase\" : {\n" +
            "            \"message\" : {\n" +
            "              \"query\": \"" + person.getName() + "\",\n" +
            "              \"slop\": 2\n" +
            "            }\n        }\n" +
            "    },\n" +
            "    \"role\": \"" + person.getRole() + "\",\n" +
            "    \"name\": \"" + person.getName() + "\",\n" +
            "    \"times_sold\": " + person.getTimesSold() + "\n" +
            "}";
    IndexRequest indexRequest = new IndexRequest(INDEX_NAME).source(source, XContentType.JSON);

and the query:

SearchSourceBuilder builder = new SearchSourceBuilder();

WrapperQueryBuilder wrapperQueryBuilder = QueryBuilders.wrapperQuery("{\n" +
        "    \"percolate\": {\n" +
        "      \"field\": \"person\",\n" +
        "      \"document\": {\n" +
        "        \"message\": \"" + text + "\"\n" +
        "      }\n" +
        "    }\n" +
        "  }");
builder.query(wrapperQueryBuilder);
SearchRequest searchRequest = new SearchRequest(ElasticInitialiser.INDEX_NAME);
searchRequest.source(builder);
1 Like