private void getPrefix(PrefixQuery query) { highlight.add(query.getPrefix().text()); } }
private void getPrefix(PrefixQuery query) { Term term = query.getPrefix(); if (useTerm(term)) { matchers.add( new PrefixMatcher(term.text(), isCaseInsensitive(term))); } }
private String extractTermField( Query query ) { // Try common types of queries if ( query instanceof TermQuery ) { return ((TermQuery)query).getTerm().field(); } else if ( query instanceof WildcardQuery ) { return ((WildcardQuery)query).getTerm().field(); } else if ( query instanceof PrefixQuery ) { return ((PrefixQuery)query).getPrefix().field(); } else if ( query instanceof MatchAllDocsQuery ) { return null; } // Try to extract terms and get it that way String field = getFieldFromExtractTerms( query ); if ( field != null ) { return field; } // Last resort: since Query doesn't have a common interface for getting // the term/field of its query this is one option. return getFieldViaReflection( query ); }
private static void planPrefixQuery(final StringBuilder builder, final PrefixQuery query) { builder.append(query.getPrefix()); }
public Term getPrefix() { return query.getPrefix(); }
public Term getPrefix() { return query.getPrefix(); }
@Override public void writeObject(ObjectOutput output, PrefixQuery prefixQuery) throws IOException { output.writeObject(prefixQuery.getPrefix()); }
@Override public void writeObject(ObjectOutput output, PrefixQuery prefixQuery) throws IOException { output.writeObject(prefixQuery.getPrefix()); }
private QueryNode internalParse(org.apache.lucene.search.Query luceneQuery, final String originalStr) throws ParseException { QueryNode node; if (luceneQuery instanceof org.apache.lucene.search.TermQuery) { Term t = ((org.apache.lucene.search.TermQuery) luceneQuery).getTerm(); String field = t.field(); String text = t.text(); node = new TermQuery(field, text); } else if (luceneQuery instanceof org.apache.lucene.search.PrefixQuery) { Term t = ((org.apache.lucene.search.PrefixQuery) luceneQuery).getPrefix(); String field = t.field(); String text = t.text(); node = new PrefixTermQuery(field, text); } else if (luceneQuery instanceof org.apache.lucene.search.BooleanQuery) { List<BooleanClause> clauses = ((org.apache.lucene.search.BooleanQuery) luceneQuery).clauses(); if (clauses.isEmpty()) { throw new ParseException("error parsing: " + originalStr); } node = internalParseBooleanQuery(clauses, originalStr); } else if (luceneQuery instanceof org.apache.lucene.search.PhraseQuery) { org.apache.lucene.search.PhraseQuery phraseQuery = (org.apache.lucene.search.PhraseQuery) luceneQuery; int[] positions = phraseQuery.getPositions(); node = internalParsePhraseQuery(phraseQuery.getTerms(), positions, originalStr); } else { throw new ParseException("unimplemented"); } node.setBoost(luceneQuery.getBoost()); return node; }
public static Query rewrite(PrefixQuery pq, Set<String> intFields) { if (intFields.contains(pq.getPrefix().field())) { // not really sure what to do here, for now just treat it as an inequality query return Query.newRangeQuery(pq.getPrefix().field(), Long.parseLong(pq.getPrefix().text()), Long.MAX_VALUE, true); } else { final String prefix = pq.getPrefix().text(); final String endTerm = prefix.substring(0, prefix.length() - 1) + ((char)((prefix.charAt(prefix.length() - 1) + 1))); return Query.newRangeQuery(pq.getPrefix().field(), prefix, endTerm, false); } }
protected void flattenQuery(PrefixQuery query, float pathBoost, Object sourceOverride, IndexReader reader, Callback callback) { flattenPrefixQuery(query.getPrefix().bytes(), pathBoost, sourceOverride, callback); }
@Override public Query visit(PrefixQuery prefixQuery, Field field) { if( field == Field.CONTENTS ) { Term term = prefixQuery.getPrefix(); return new PrefixQuery( field.createTerm( term.text().toLowerCase(Locale.ENGLISH) ) ); } return super.visit(prefixQuery, field); }
@Override public Query visit(PrefixQuery prefixQuery, Field termField) { Term t = prefixQuery.getPrefix(); if( termField == null && aliases.containsKey(t.field()) ) { Field field = aliases.get(t.field()); Term newTerm = field.createTerm(t.text()); PrefixQuery newTermQuery = new PrefixQuery(newTerm); return newTermQuery; } return super.visit(prefixQuery, termField); }
@Override public Query visit(PrefixQuery prefixQuery, Field field) { Term t = prefixQuery.getPrefix(); if( field == Field.DIR ) { String text = t.text(); if( text.startsWith("/") ) // already absolute { Term fileTerm = Field.FILE.createTerm(text); return new PrefixQuery(fileTerm); //change field } Term fileTerm = Field.FILE.createTerm("/*/" + text + "*/*"); // meant to end with * already return new WildcardQuery(fileTerm); } return super.visit(prefixQuery, field); }
if (c.length==1) { Query q1 = c[0].getQuery(); if (q1 instanceof PrefixQuery && "u".equals(((PrefixQuery)q1).getPrefix().field())) {
df = reader.docFreq(fq.getPrefix()); if(df>=1)
private static JsonObject convertPrefixQuery(PrefixQuery query) { String field = query.getField(); JsonObject wildcardQuery = JsonBuilder.object() .add( "prefix", JsonBuilder.object().add( field, JsonBuilder.object() .addProperty( "value", query.getPrefix().text() ) .append( boostAppender( query ) ) ) ).build(); return wrapQueryForNestedIfRequired( field, wildcardQuery ); }
private static JsonObject convertPrefixQuery(PrefixQuery query) { String field = query.getField(); JsonObject wildcardQuery = JsonBuilder.object() .add( "prefix", JsonBuilder.object().add( field, JsonBuilder.object() .addProperty( "value", query.getPrefix().text() ) .append( boostAppender( query ) ) ) ).build(); return wrapQueryForNestedIfRequired( field, wildcardQuery ); }
Field field = Field.getByName(prefixQuery.getPrefix().field());