QueryParser parser = new QueryParser("field1", analyzer); java.util.Map boosts = new java.util.HashMap(); boosts.put("field1", new java.lang.Float(1.0)); boosts.put("field2", new java.lang.Float(10.0)); MultiFieldQueryParser multiParser = new MultiFieldQueryParser (new string[] { "field1", "field2" }, analyzer, boosts); multiParser.setDefaultOperator(QueryParser.Operator.OR); Query query = multiParser.parse("ABC"); Hits hits = isearcher.search(query);
public SearchResult<AgencyAndId> searchForStopsByCode(String id, int maxResultCount, double minScoreToKeep) throws IOException, ParseException { return search(new MultiFieldQueryParser(CODE_FIELDS, _analyzer), id, maxResultCount, minScoreToKeep); }
/** * @param queryText * @return * @throws ParseException */ protected BooleanQuery makeInitialQuery(String queryText) throws ParseException { queryText = queryText.replaceAll("-", " "); queryText = queryText.replaceAll("\"", ""); queryText = queryText.replaceAll("\'", ""); String finalQuery = queryText; Query query = null; if (fields.length == 1) { QueryParser parser = new QueryParser(AnalyzerVersion, fields[0], analyzer); query = parser.parse(QueryParser.escape(finalQuery)); } else { MultiFieldQueryParser parser = new MultiFieldQueryParser( AnalyzerVersion, fields, analyzer); query = parser.parse(QueryParser.escape(finalQuery)); } BooleanQuery.setMaxClauseCount(30000); BooleanQuery bq = new BooleanQuery(); bq.add(query, BooleanClause.Occur.SHOULD); return bq; }
public class MultiFieldQueryParserTests { @Test public void testMultiFieldQueryParser() throws Exception { MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "field1", "field2", "field3" }, new WhitespaceAnalyzer()); Query q = parser.parse("test phrase*"); System.out.println("query " + q); q = parser.parse("\"test phrase*\""); System.out.println("query " + q); } }
MultiFieldQueryParser mfqp = new MultiFieldQueryParser(fields, new StandardAnalyzer(), boost); mfqp.setAllowLeadingWildcard(true); Query userQuery = mfqp.parse(q);
try { int num1 = Integer.parseInt(queryText); return super.getFieldQuery(field, NumericUtils.longToPrefixCoded(num1)); } catch (NumberFormatException e) { return super.getWildcardQuery(field, queryText); return super.getFieldQuery(field, queryText);
protected Query getWildcardQuery(String field, String termStr) throws ParseException { if (field == null) { List clauses = new ArrayList(); for (int i = 0; i < fields.length; i++) { clauses.add(new BooleanClause(getWildcardQuery(fields[i], termStr), BooleanClause.Occur.SHOULD)); } return getBooleanQuery(clauses, true); } return super.getWildcardQuery(field, termStr); }
protected Query getRangeQuery(String field, String part1, String part2, boolean inclusive) throws ParseException { if (field == null) { List clauses = new ArrayList(); for (int i = 0; i < fields.length; i++) { clauses.add(new BooleanClause(getRangeQuery(fields[i], part1, part2, inclusive), BooleanClause.Occur.SHOULD)); } return getBooleanQuery(clauses, true); } return super.getRangeQuery(field, part1, part2, inclusive); }
protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException { if (field == null) { List clauses = new ArrayList(); for (int i = 0; i < fields.length; i++) { clauses.add(new BooleanClause(getFuzzyQuery(fields[i], termStr, minSimilarity), BooleanClause.Occur.SHOULD)); } return getBooleanQuery(clauses, true); } return super.getFuzzyQuery(field, termStr, minSimilarity); }
protected Query getPrefixQuery(String field, String termStr) throws ParseException { if (field == null) { List clauses = new ArrayList(); for (int i = 0; i < fields.length; i++) { clauses.add(new BooleanClause(getPrefixQuery(fields[i], termStr), BooleanClause.Occur.SHOULD)); } return getBooleanQuery(clauses, true); } return super.getPrefixQuery(field, termStr); }
protected Query getFieldQuery(String field, String queryText) throws ParseException { return getFieldQuery(field, queryText, 0); }
return super.getRangeQuery(field, part1, part2, inclusive);
protected Query getWildcardQuery(String field, String termStr) throws ParseException { ResourcePropertyLookup lookup = null; if (field != null) { lookup = mapping.getResourcePropertyLookup(field); lookup.setConvertOnlyWithDotPath(false); field = lookup.getPath(); } return QueryParserUtils.andAliasQueryIfNeeded(super.getWildcardQuery(field, termStr), lookup, addAliasQueryWithDotPath, searchEngineFactory); }
protected Query getPrefixQuery(String field, String termStr) throws ParseException { if (field == null) { return super.getPrefixQuery(field, termStr); } ResourcePropertyLookup lookup = mapping.getResourcePropertyLookup(field); lookup.setConvertOnlyWithDotPath(false); if (!allowConstantScorePrefixQuery) { return super.getPrefixQuery(lookup.getPath(), termStr); } if (getLowercaseExpandedTerms()) { termStr = termStr.toLowerCase(); } Term t = new Term(lookup.getPath(), termStr); return QueryParserUtils.andAliasQueryIfNeeded(new ConstantScorePrefixQuery(t), lookup, addAliasQueryWithDotPath, searchEngineFactory); }
protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException { ResourcePropertyLookup lookup = null; if (field != null) { lookup = mapping.getResourcePropertyLookup(field); lookup.setConvertOnlyWithDotPath(false); field = lookup.getPath(); } return QueryParserUtils.andAliasQueryIfNeeded(super.getFuzzyQuery(field, termStr, minSimilarity), lookup, addAliasQueryWithDotPath, searchEngineFactory); }
public SearchResult<AgencyAndId> searchForStopsByName(String name, int maxResultCount, double minScoreToKeep) throws IOException, ParseException { return search(new MultiFieldQueryParser(NAME_FIELDS, _analyzer), name, maxResultCount, minScoreToKeep); }
MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_30, idxdFields, writer.getAnalyzer()); docs = searcher.search(parser.parse(qry), f, Integer.MAX_VALUE);
MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_29, searchFields, new KeywordAnalyzer()); org.apache.lucene.search.Query query = parser.parse("Text from entity to search for"); // Or any other valid query FullTextSession fullTextSession = Search.getFullTextSession(hibernateSession); org.hibernate.Query hibernateQuery = fullTextSession.createFullTextQuery(query, YOUR_TARGET_ENTITY_HERE.class); List result = hibernateQuery.list();
Set<String> fieldSet = Sets.newHashSet(); fieldSet.add(rangeQueryField); BooleanQuery fieldsQuery = new BooleanQuery(); for (String field : fields) { fieldSet.add(field); WildcardQuery queryPart = new WildcardQuery(new Term(field, queryText)); fieldsQuery.add(queryPart, Occur.SHOULD); } BooleanQuery query = new BooleanQuery(); query.add(fieldsQuery, Occur.MUST); NumericRangeFilter<Long> longNumericRangeFilter = NumericRangeFilter.newLongRange(rangeQueryField, rangeValue, Long.MAX_VALUE, false, false); MultiFieldQueryParser queryParser = new MultiFieldQueryParser(version, fieldSet.toArray(new String[0]), analyzer); queryParser.setAllowLeadingWildcard(true); Query q = queryParser.parse(query.toString()); TopFieldDocs searchResults = searcher.search(q, longNumericRangeFilter, maxResultsToReturn, sort);
protected Query getWildcardQuery(String field, String termStr) throws ParseException { if (field == null) { List clauses = new ArrayList(); for (int i = 0; i < fields.length; i++) { clauses.add(new BooleanClause(getWildcardQuery(fields[i], termStr), BooleanClause.Occur.SHOULD)); } return getBooleanQuery(clauses, true); } return super.getWildcardQuery(field, termStr); }