Код: Выделить всё
public class CustomMultiFieldQueryParser {
private static String[] DefaultQueryFields = new String[]{"name", "category", "jobType"};
public static void main(String[] args) throws ParseException {
String query = "jobType:(1/2 day)";
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(DefaultQueryFields, new StandardAnalyzer());
System.out.println(queryParser.parse(query));
}
}
Код: Выделить всё
Exception in thread "main" org.apache.lucene.queryparser.classic.ParseException: Cannot parse 'jobType:(1/2 day)': Lexical error at line 1, column 18. Encountered: after prefix "/2 day)" (in lexical state 2)
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:141)
at CustomMultiFieldQueryParser.main(CustomMultiFieldQueryParser.java:12)
Caused by: org.apache.lucene.queryparser.classic.TokenMgrError: Lexical error at line 1, column 18. Encountered: after prefix "/2 day)" (in lexical state 2)
at org.apache.lucene.queryparser.classic.QueryParserTokenManager.getNextToken(QueryParserTokenManager.java:1065)
at org.apache.lucene.queryparser.classic.QueryParser.getToken(QueryParser.java:914)
at org.apache.lucene.queryparser.classic.QueryParser.jj_3R_MultiTerm_383_3_3(QueryParser.java:763)
at org.apache.lucene.queryparser.classic.QueryParser.jj_3_1(QueryParser.java:738)
at org.apache.lucene.queryparser.classic.QueryParser.jj_2_1(QueryParser.java:690)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:232)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:371)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:251)
at org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:223)
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:137)
... 1 more
Process finished with exit code 1
Код: Выделить всё
Exception in thread "main" java.lang.IllegalArgumentException: end-of-string expected at position 11
at org.apache.lucene.util.automaton.RegExp.(RegExp.java:506)
at org.apache.lucene.search.RegexpQuery.(RegexpQuery.java:144)
at org.apache.lucene.queryparser.classic.QueryParserBase.newRegexpQuery(QueryParserBase.java:574)
at org.apache.lucene.queryparser.classic.QueryParserBase.getRegexpQuery(QueryParserBase.java:752)
at org.apache.lucene.queryparser.classic.MultiFieldQueryParser.getRegexpQuery(MultiFieldQueryParser.java:272)
at org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:821)
at org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:494)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:366)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:312)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:371)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:251)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:371)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:251)
at org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:223)
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:137)
at CustomMultiFieldQueryParser.main(CustomMultiFieldQueryParser.java:13)
Подробнее здесь: https://stackoverflow.com/questions/785 ... ne-2-works