Query query( String keyOrNull, Object value, QueryContext contextOrNull ) { if ( value instanceof Query ) { return (Query) value; } QueryParser parser = new QueryParser( keyOrNull, analyzer ); parser.setAllowLeadingWildcard( true ); parser.setLowercaseExpandedTerms( toLowerCase ); if ( contextOrNull != null && contextOrNull.getDefaultOperator() != null ) { parser.setDefaultOperator( contextOrNull.getDefaultOperator() ); } try { return parser.parse( value.toString() ); } catch ( ParseException e ) { throw new RuntimeException( e ); } }
public Query parse(final String query, final Operator operator, final Analyzer analyzer) throws ParseException, JSONException { final QueryParser parser = new CustomQueryParser(Constants.DEFAULT_FIELD, analyzer); parser.setDefaultOperator(operator); parser.setAllowLeadingWildcard(ini.getBoolean("lucene.allowLeadingWildcard", false)); parser.setLowercaseExpandedTerms(ini.getBoolean("lucene.lowercaseExpandedTerms", true)); return parser.parse(query); }
qp.setAllowLeadingWildcard(true); luceneQuery = getLuceneQuery(metadata, id, isEmbeddedId, metaModel, parentClazz); Query q = qp.parse(luceneQuery);
/** * Sets {@link QueryParser} instance properties. */ @PostConstruct public void initQueryParserProperties() { queryParser.setLowercaseExpandedTerms(true); queryParser.setAllowLeadingWildcard(true); }
private Query parseQuery(String queryString, Analyzer analyzer) throws ParseException { QueryParser queryParser = getQueryParser(analyzer) ; queryParser.setAllowLeadingWildcard(true) ; Query query = queryParser.parse(queryString) ; return query ; }
qp.setAllowLeadingWildcard(true); return qp.parse(query); } catch (Exception e) {
public LuceneSearchIndex( final LuceneIndexManager indexManager, final Analyzer analyzer ) { this.indexManager = checkNotNull( "lucene", indexManager ); this.queryParser = new QueryParser( Version.LUCENE_40, FULL_TEXT_FIELD, analyzer ); this.queryParser.setAllowLeadingWildcard( true ); }
private Query parseQuery(String queryString, Analyzer analyzer) throws ParseException { QueryParser queryParser = getQueryParser(analyzer) ; queryParser.setAllowLeadingWildcard(true) ; Query query = queryParser.parse(queryString) ; return query ; }
public LuceneSearchIndex(final LuceneIndexManager indexManager, final Analyzer analyzer) { this.indexManager = checkNotNull("lucene", indexManager); this.queryParser = new QueryParser(FULL_TEXT_FIELD, analyzer); this.queryParser.setAllowLeadingWildcard(true); }
/** * Returns the Lucene query instance corresponding to this object. * * <p> * This method uses a query parser to parse the predicate. * * @return The Lucene query instance or <code>null</code> if the predicate was <code>null</code>. */ @Override public Query toQuery() { if (this._predicate == null) return null; try { QueryParser parser = new QueryParser(this._defaultfield, this._analyser); parser.setAllowLeadingWildcard(this._allowLeadingWildcard); return parser.parse(this._predicate); } catch (ParseException ex) { return null; } }
/** * Instantiates a new ecl expression handler. * * @param terminology the terminology * @param version the version * @throws Exception the exception */ public EclExpressionHandler(String terminology, String version) throws Exception { // instantiate the index searcher String indexDir = ConfigUtility.getExpressionIndexDirectoryName(terminology, version); Directory dirFile = new NIOFSDirectory(new File(indexDir)); indexSearcher = new IndexSearcher(DirectoryReader.open(dirFile)); // instantiate the modified SQS lucene converter converter = new ExpressionConstraintToLuceneConverter(); // instantiate the query parser queryParser = new QueryParser(EclConceptFieldNames.ID, new StandardAnalyzer()); queryParser.setAllowLeadingWildcard(true); // compute the internal functions from the modified SQS lucene converter // NOTE: Kept out of Converter to minimize SQS code modification for (ExpressionConstraintToLuceneConverter.InternalFunction internalFunction : ExpressionConstraintToLuceneConverter.InternalFunction .values()) { internalFunctionPatternMap.put(internalFunction, Pattern.compile(".*(" + internalFunction + "\\(([^\\)]+)\\)).*")); } }
@Test public void testInitQueryParserProperties() { //GIVEN in setUp //WHEN underTest.initQueryParserProperties(); //THEN verify(queryParser).setLowercaseExpandedTerms(true); verify(queryParser).setAllowLeadingWildcard(true); }
private Query createLuceneQuery() throws ParseException { QueryParser parser = new QueryParser( "id", TestConstants.standardAnalyzer ); parser.setAllowLeadingWildcard( true ); return parser.parse( "*" ); }
/** {@inheritDoc} */ @Override public Query doQuery(Schema schema) { try { Analyzer analyzer = schema.analyzer; QueryParser queryParser = new QueryParser(defaultField, analyzer); queryParser.setAllowLeadingWildcard(true); queryParser.setLowercaseExpandedTerms(false); return queryParser.parse(query); } catch (ParseException e) { throw new IndexException("Error while parsing lucene syntax query: {}", e.getMessage()); } }
@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "firstname", "lastname", "displayname", "displayname_split", "email" }, analyzer); parser.setFuzzyMinSim(0.6f); parser.setAllowLeadingWildcard(true); try { Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder userQuery = new BooleanQuery.Builder(); BooleanQuery.Builder userFieldsQuery = new BooleanQuery.Builder(); userFieldsQuery.add(parse, BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("firstname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("lastname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("displayname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("email", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userQuery.add(userFieldsQuery.build(), BooleanClause.Occur.MUST); userQuery.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(userQuery.build(), query.getPage()); } catch (ParseException pe) { logger.error("Invalid query to search for user documents", pe); throw new TechnicalException("Invalid query to search for user documents", pe); } }
QueryParser parser = new QueryParser("content", analyzer); parser.setAllowLeadingWildcard(true); try { Query result = parser.parse(escapeSearchTerm(searchTerm, false));
@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "firstname", "lastname", "displayname", "displayname_split", "email" }, analyzer); parser.setFuzzyMinSim(0.6f); parser.setAllowLeadingWildcard(true); try { Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder userQuery = new BooleanQuery.Builder(); BooleanQuery.Builder userFieldsQuery = new BooleanQuery.Builder(); userFieldsQuery.add(parse, BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("firstname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("lastname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("displayname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("email", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userQuery.add(userFieldsQuery.build(), BooleanClause.Occur.MUST); userQuery.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(userQuery.build(), query.getPage()); } catch (ParseException pe) { logger.error("Invalid query to search for user documents", pe); throw new TechnicalException("Invalid query to search for user documents", pe); } }
private QueryExpression create(Request request, ResourceDefinition resourceDefinition) throws InvalidQueryException { String queryString; if (request.getCardinality() == Request.Cardinality.INSTANCE) { String idPropertyName = resourceDefinition.getIdPropertyName(); queryString = String.format("%s:%s", idPropertyName, request.<String>getProperty(idPropertyName)); } else { queryString = request.getQueryString(); } QueryExpression queryExpression; if (queryString != null && !queryString.isEmpty()) { QueryParser queryParser = new QueryParser(Version.LUCENE_48, "name", new KeywordAnalyzer()); queryParser.setLowercaseExpandedTerms(false); queryParser.setAllowLeadingWildcard(true); Query query; try { query = queryParser.parse((String) escape(queryString)); } catch (ParseException e) { throw new InvalidQueryException(e.getMessage()); } LOG.info("LuceneQuery: {}", query); queryExpression = create(query, resourceDefinition); } else { queryExpression = new AlwaysQueryExpression(); } // add query properties to request so that they are returned request.addAdditionalSelectProperties(queryExpression.getProperties()); return queryExpression; }
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); }