/** * <p>Create an Elasticsearch query for the given search string but does * not apply the {@link ElasticsearchQueryOptimizer} to it.</p> * @param search the search string * @return the Elasticsearch query (may be null) */ protected JsonObject compileQueryNoOptimize(String search) { if (search == null || search.isEmpty()) { // match everything by default return matchAllQuery(); } // parse query QueryLexer lexer = new QueryLexer(new ANTLRInputStream(search.trim())); CommonTokenStream tokens = new CommonTokenStream(lexer); QueryParser parser = new QueryParser(tokens); QueryContext ctx = parser.query(); // compile query to QueryBuilder QueryCompilerListener listener = new QueryCompilerListener(); ParseTreeWalker.DEFAULT.walk(listener, ctx); if (listener.result.isEmpty()) { return matchAllQuery(); } return listener.result.pop(); }