Does anyone know how to avoid queries being split on hyphens? My queries are being split on hyphens resulting in the following lucene query:
Quote:
+(topic:news -topic:international +topic:news -topic:domestic)
However, I want:
Quote:
+(topic:news - international topic:news - domestic)
To build the query I put together a convenience method (see below) using hibernate search 3.4.0.Final.
Code:
public org.apache.lucene.search.Query buildLuceneQuery(String[] queries, String[] fields, BooleanClause.Occur[] clauses) {
try {
org.apache.lucene.search.Query luceneQuery = MultiFieldQueryParser.parse(Version.LUCENE_31, queries, fields, clauses, new StandardAnalyzer(Version.LUCENE_31));
LOGGER.debug("Parsed lucene search query: {}", luceneQuery.toString());
return luceneQuery;
} catch (Exception e) {
LOGGER.error("Unable to parse lucene search query: {}", StringUtils.join(queries, ", "));
throw new RuntimeException("Unable to parse multifield query", e);
}
}