use of datawave.query.language.parser.lucene.AccumuloSyntaxParser in project datawave by NationalSecurityAgency.
the class LuceneToJexlQueryParser method convertToJexlNode.
public JexlNode convertToJexlNode(String query) throws ParseException {
// replace open smart quote 147
query = query.replaceAll("\\u0093", "\"");
// replace close smart quote 148
query = query.replaceAll("\\u0094", "\"");
// replace open left double quote
query = query.replaceAll("\\u201c", "\"");
// replace close right double quote
query = query.replaceAll("\\u201d", "\"");
JexlNode parsedQuery = null;
try {
Locale.setDefault(Locale.US);
AccumuloSyntaxParser syntaxParser = new AccumuloSyntaxParser();
syntaxParser.enable_tracing();
QueryNodeProcessor processor = getQueryNodeProcessor();
QueryBuilder builder = new JexlTreeBuilder(allowedFunctions);
org.apache.lucene.queryparser.flexible.core.nodes.QueryNode queryTree = syntaxParser.parse(query, "");
queryTree = processor.process(queryTree);
parsedQuery = (JexlNode) builder.build(queryTree);
} catch (Exception e) {
throw new ParseException(e);
}
return parsedQuery;
}
Aggregations