Package org.apache.lucene.search

Examples of org.apache.lucene.search.PrefixQuery


    w.addDocument(document);

    IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(w.w, false));
    w.close();
    Filter parentFilter = new QueryWrapperFilter(new TermQuery(new Term("__type", "parent")));
    Filter childFilter = new QueryWrapperFilter(new PrefixQuery(new Term("field2")));
    ToParentBlockJoinQuery query = new ToParentBlockJoinQuery(
        new FilteredQuery(new MatchAllDocsQuery(), childFilter),
        new CachingWrapperFilter(parentFilter),
        ScoreMode.None
    );
View Full Code Here


        writer.addDocument(doc);
      }
      writer.close();
     
      IndexReader reader = IndexReader.open(directory);
      PrefixQuery query = new PrefixQuery(new Term("category", "foo"));
     
      rw1 = query.rewrite(reader);
     
      BooleanQuery bq = new BooleanQuery();
      bq.add(query, BooleanClause.Occur.MUST);
     
      rw2 = bq.rewrite(reader);
View Full Code Here

                        }
                        else
                        {
                            // the last one

                            Query q1 = new PrefixQuery( new Term( field, terms[i] ) );

                            bq.add( q1, BooleanClause.Occur.MUST );
                        }
                    }

                    queries.add( bq );
                }
                else if ( phrase.startsWith( "\"" ) && phrase.endsWith( "\"" ) )
                {
                    // we have quotes around, make it a phrase query

                    PhraseQuery pq = new PhraseQuery();

                    if ( len == 1 )
                    {
                        // "shave" those quotes
                        pq.add( new Term( field, terms[0].substring( 1, terms.length - 1 ) ) );
                    }
                    else
                    {
                        for ( int i = 0; i < len; i++ )
                        {
                            if ( i == 0 )
                            {
                                // first: "shave" those quotes
                                pq.add( new Term( field, terms[i].substring( 1 ) ) );
                            }
                            else if ( i == len - 1 )
                            {
                                // last: "shave" those quotes
                                pq.add( new Term( field, terms[i].substring( 0, terms[i].length() - 1 ) ) );
                            }
                            else
                            {
                                // in the middle
                                pq.add( new Term( field, terms[i] ) );
                            }
                        }
                    }

                    queries.add( pq );
                }
                else
                {
                    // we have a "free" phrase, combine it into query from multiple Term + last as Wildcard query

                    BooleanQuery bq = new BooleanQuery();

                    Query q1 = null;

                    for ( int i = 0; i < len; i++ )
                    {
                        if ( i < len - 1 )
                        {
                            // all in the middle
                            q1 = new TermQuery( new Term( field, terms[i] ) );
                        }
                        else
                        {
                            // the last term
                            q1 = new PrefixQuery( new Term( field, terms[i] ) );
                        }

                        bq.add( q1, BooleanClause.Occur.MUST );
                    }

                    queries.add( bq );
                }
            }
            else
            {
                if ( phrase.indexOf( 'X' ) > -1 )
                {
                    queries.add( new WildcardQuery( new Term( field, phrase.replaceAll( "X", "*" ) ) ) );
                }
                else
                {
                    queries.add( new PrefixQuery( new Term( field, phrase ) ) );
                }
            }
        }

        Query result = null;
View Full Code Here

            return new FuzzyQuery(new Term(FIELD,c.substring(0,c.length()-1)));
        }
       
        private PrefixQuery toPrefixQuery() {
            String c=toContent();
            return new PrefixQuery(new Term(FIELD,c.substring(0,c.length()-1)));
        }
View Full Code Here

            return aq.toString();
          }
        });
      }
    } else if (query instanceof PrefixQuery) {
      final PrefixQuery pq = (PrefixQuery) query;
      Term prefix = pq.getPrefix();
      if (prefix.field().equals(field)) {
        list.add(new CharacterRunAutomaton(BasicOperations.concatenate(BasicAutomata.makeString(prefix.text()),
                                                                       BasicAutomata.makeAnyString())) {
          @Override
          public String toString() {
            return pq.toString();
          }
        });
      }
    } else if (query instanceof FuzzyQuery) {
      final FuzzyQuery fq = (FuzzyQuery) query;
View Full Code Here

  public PrefixQuery build(QueryNode queryNode) throws QueryNodeException {   

    PrefixWildcardQueryNode wildcardNode = (PrefixWildcardQueryNode) queryNode;

    String text = wildcardNode.getText().subSequence(0, wildcardNode.getText().length() - 1).toString();
    PrefixQuery q = new PrefixQuery(new Term(wildcardNode.getFieldAsString(), text));
   
    MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodProcessor.TAG_ID);
    if (method != null) {
      q.setRewriteMethod(method);
    }
   
    return q;
  }
View Full Code Here

    RegexpQuery rgxNoSuch = new RegexpQuery(new Term("field", "noSuch"));
    SpanQuery spanRgxNoSuch = new SpanMultiTermQueryWrapper<>(rgxNoSuch);
    near = new SpanNearQuery(new SpanQuery[]{term, spanRgxNoSuch}, 1, true);
    assertEquals(0, searcher.search(near, 10).totalHits);
   
    PrefixQuery prfxNoSuch = new PrefixQuery(new Term("field", "noSuch"));
    SpanQuery spanPrfxNoSuch = new SpanMultiTermQueryWrapper<>(prfxNoSuch);
    near = new SpanNearQuery(new SpanQuery[]{term, spanPrfxNoSuch}, 1, true);
    assertEquals(0, searcher.search(near, 10).totalHits);

    //test single noSuch
View Full Code Here

    RegexpQuery rgxNoSuch = new RegexpQuery(new Term("field", "noSuch"));
    SpanQuery spanRgxNoSuch = new SpanMultiTermQueryWrapper<>(rgxNoSuch);
    notNear = new SpanNotQuery(term, spanRgxNoSuch, 1, 1);
    assertEquals(1, searcher.search(notNear, 10).totalHits);
   
    PrefixQuery prfxNoSuch = new PrefixQuery(new Term("field", "noSuch"));
    SpanQuery spanPrfxNoSuch = new SpanMultiTermQueryWrapper<>(prfxNoSuch);
    notNear = new SpanNotQuery(term, spanPrfxNoSuch, 1, 1);
    assertEquals(1, searcher.search(notNear, 10).totalHits);
   
  }
View Full Code Here

    RegexpQuery rgxNoSuch = new RegexpQuery(new Term("field", "noSuch"));
    SpanQuery spanRgxNoSuch = new SpanMultiTermQueryWrapper<>(rgxNoSuch);
    near = new SpanOrQuery(new SpanQuery[]{term, spanRgxNoSuch});
    assertEquals(1, searcher.search(near, 10).totalHits);
   
    PrefixQuery prfxNoSuch = new PrefixQuery(new Term("field", "noSuch"));
    SpanQuery spanPrfxNoSuch = new SpanMultiTermQueryWrapper<>(prfxNoSuch);
    near = new SpanOrQuery(new SpanQuery[]{term, spanPrfxNoSuch});
    assertEquals(1, searcher.search(near, 10).totalHits);
   
    near = new SpanOrQuery(new SpanQuery[]{spanPrfxNoSuch});
View Full Code Here

    RegexpQuery rgxNoSuch = new RegexpQuery(new Term("field", "noSuch"));
    SpanQuery spanRgxNoSuch = new SpanMultiTermQueryWrapper<>(rgxNoSuch);
    spanFirst = new SpanFirstQuery(spanRgxNoSuch, 10);
    assertEquals(0, searcher.search(spanFirst, 10).totalHits);
   
    PrefixQuery prfxNoSuch = new PrefixQuery(new Term("field", "noSuch"));
    SpanQuery spanPrfxNoSuch = new SpanMultiTermQueryWrapper<>(prfxNoSuch);
    spanFirst = new SpanFirstQuery(spanPrfxNoSuch, 10);
    assertEquals(0, searcher.search(spanFirst, 10).totalHits);
  }
View Full Code Here

TOP

Related Classes of org.apache.lucene.search.PrefixQuery

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.