/** * Returns in instance of a QueyParser based on a KeywordAnalyser. The method * set the lucene DefaultOperator to 'OR' if not specified otherwise in the * imixs.properties. * * @see issue #28 - normalizeSearchTerm * @param prop * @return */ QueryParser createQueryParser(Properties prop) { // use the keywordAnalyzer for searching a search term. QueryParser parser = new QueryParser("content", new KeywordAnalyzer()); // set default operator to 'AND' if not defined by property setting String defaultOperator = prop.getProperty("lucene.defaultOperator"); if (defaultOperator != null && "OR".equals(defaultOperator.toUpperCase())) { logger.finest("......DefaultOperator: OR"); parser.setDefaultOperator(Operator.OR); } else { logger.finest("......DefaultOperator: AND"); parser.setDefaultOperator(Operator.AND); } // set setSplitOnWhitespace (issue #438) String splitOnWhitespace = prop.getProperty("lucene.splitOnWhitespace", "true"); boolean bSplitOnWhitespace = Boolean.parseBoolean(splitOnWhitespace); logger.finest("......SplitOnWhitespace: " + bSplitOnWhitespace); parser.setSplitOnWhitespace(bSplitOnWhitespace); return parser; }
protected void setParserParameters(org.apache.lucene.queryparser.classic.QueryParser parser) { setQueryBuilderParameters(parser); if (default_operator != null) parser.setDefaultOperator(default_operator.queryParseroperator); if (allow_leading_wildcard != null) parser.setAllowLeadingWildcard(allow_leading_wildcard); if (phrase_slop != null) parser.setPhraseSlop(phrase_slop); if (auto_generate_phrase_query != null) parser.setAutoGeneratePhraseQueries(auto_generate_phrase_query); if (analyzer_range_terms != null) parser.setAnalyzeRangeTerms(analyzer_range_terms); if (fuzzy_min_sim != null) parser.setFuzzyMinSim(fuzzy_min_sim); if (fuzzy_prefix_length != null) parser.setFuzzyPrefixLength(fuzzy_prefix_length); if (lowercase_expanded_terms != null) parser.setLowercaseExpandedTerms(lowercase_expanded_terms); if (max_determinized_states != null) parser.setMaxDeterminizedStates(max_determinized_states); if (splitOnWhitespace != null) parser.setSplitOnWhitespace(splitOnWhitespace); }