Package org.apache.lucene.search

Examples of org.apache.lucene.search.MultiTermQuery$ScoringBooleanQueryRewrite


    * @throws IOException if an error occurs while reading from the index.
    */
   @Override
   public Query rewrite(IndexReader reader) throws IOException
   {
      Query stdWildcardQuery = new MultiTermQuery(new Term(field, pattern))
      {
         @Override
         protected FilteredTermEnum getEnum(IndexReader reader) throws IOException
         {
            return new WildcardTermEnum(reader, field, propName, pattern, transform);
         }
      };
      try
      {
         multiTermQuery = stdWildcardQuery.rewrite(reader);
         return multiTermQuery;
      }
      catch (BooleanQuery.TooManyClauses e)
      {
         // MultiTermQuery not possible
View Full Code Here


     * @param reader the index reader to use for the search.
     * @return the rewritten query.
     * @throws IOException if an error occurs while reading from the index.
     */
    public Query rewrite(IndexReader reader) throws IOException {
        Query stdWildcardQuery = new MultiTermQuery(new Term(field, pattern)) {
            protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
                return new WildcardTermEnum(reader, field, propName, pattern, transform);
            }
        };
        try {
            multiTermQuery = stdWildcardQuery.rewrite(reader);
            return multiTermQuery;
        } catch (BooleanQuery.TooManyClauses e) {
            // MultiTermQuery not possible
            log.debug("Too many terms to enumerate, using custom WildcardQuery.");
            return this;
View Full Code Here

     * @param reader the index reader to use for the search.
     * @return the rewritten query.
     * @throws IOException if an error occurs while reading from the index.
     */
    public Query rewrite(IndexReader reader) throws IOException {
        Query stdWildcardQuery = new MultiTermQuery(new Term(FieldNames.PROPERTIES, pattern)) {
            protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
                return new WildcardTermEnum(reader, field, propName, pattern, transform);
            }
        };
        try {
            return stdWildcardQuery.rewrite(reader);
        } catch (BooleanQuery.TooManyClauses e) {
            // MultiTermQuery not possible
            log.debug("Too many terms to enumerate, using custom WildcardQuery.");
            return this;
        }
View Full Code Here

    * @return the rewritten query.
    * @throws IOException if an error occurs while reading from the index.
    */
   public Query rewrite(IndexReader reader) throws IOException
   {
      Query stdWildcardQuery = new MultiTermQuery(new Term(field, pattern))
      {
         protected FilteredTermEnum getEnum(IndexReader reader) throws IOException
         {
            return new WildcardTermEnum(reader, field, propName, pattern, transform);
         }
      };
      try
      {
         multiTermQuery = stdWildcardQuery.rewrite(reader);
         return multiTermQuery;
      }
      catch (BooleanQuery.TooManyClauses e)
      {
         // MultiTermQuery not possible
View Full Code Here

    * @throws IOException if an error occurs while reading from the index.
    */
   @Override
   public Query rewrite(IndexReader reader) throws IOException
   {
      Query stdWildcardQuery = new MultiTermQuery()
      {
         @Override
         protected FilteredTermEnum getEnum(IndexReader reader) throws IOException
         {
            return new WildcardTermEnum(reader, field, propName, pattern, transform);
         }

         /** Prints a user-readable version of this query. */
         @Override
         public String toString(String field)
         {
            StringBuffer buffer = new StringBuffer();
            buffer.append(field);
            buffer.append(':');
            buffer.append(ToStringUtils.boost(getBoost()));
            return buffer.toString();
         }
      };
      try
      {
         multiTermQuery = stdWildcardQuery.rewrite(reader);
         return multiTermQuery;
      }
      catch (BooleanQuery.TooManyClauses e)
      {
         // MultiTermQuery not possible
View Full Code Here

    */
   @Override
   public Query rewrite(IndexReader reader) throws IOException
   {
      @SuppressWarnings("serial")
      Query stdWildcardQuery = new MultiTermQuery()
      {
         @Override
         protected FilteredTermEnum getEnum(IndexReader reader) throws IOException
         {
            return new WildcardTermEnum(reader, field, propName, pattern, transform);
         }

         /** Prints a user-readable version of this query. */
         @Override
         public String toString(String field)
         {
            StringBuilder buffer = new StringBuilder();
            buffer.append(field);
            buffer.append(':');
            buffer.append(ToStringUtils.boost(getBoost()));
            return buffer.toString();
         }
      };
      try
      {
         multiTermQuery = stdWildcardQuery.rewrite(reader);
         return multiTermQuery;
      }
      catch (BooleanQuery.TooManyClauses e)
      {
         // MultiTermQuery not possible
View Full Code Here

    else if( sourceQuery instanceof TermQuery ){
      if( !flatQueries.contains( sourceQuery ) )
        flatQueries.add( sourceQuery );
    }
    else if (sourceQuery instanceof MultiTermQuery && reader != null) {
      MultiTermQuery copy = (MultiTermQuery) sourceQuery.clone();
      copy.setRewriteMethod(new MultiTermQuery.TopTermsScoringBooleanQueryRewrite(MAX_MTQ_TERMS));
      BooleanQuery mtqTerms = (BooleanQuery) copy.rewrite(reader);
      flatten(mtqTerms, reader, flatQueries);
    }
    else if( sourceQuery instanceof PhraseQuery ){
      if( !flatQueries.contains( sourceQuery ) ){
        PhraseQuery pq = (PhraseQuery)sourceQuery;
View Full Code Here

    }

    private static void overrideMultiTermRewriteMethod(Query query, List<Tuple<MultiTermQuery, MultiTermQuery.RewriteMethod>> modifiedMultiTermQueries) {

        if (query instanceof  MultiTermQuery) {
            MultiTermQuery originalMultiTermQuery = (MultiTermQuery) query;
            if (!allowsForTermExtraction(originalMultiTermQuery.getRewriteMethod())) {
                MultiTermQuery.RewriteMethod originalRewriteMethod = originalMultiTermQuery.getRewriteMethod();
                originalMultiTermQuery.setRewriteMethod(new MultiTermQuery.TopTermsScoringBooleanQueryRewrite(50));
                //we need to rewrite anyway if it is a multi term query which was rewritten with the wrong rewrite method
                modifiedMultiTermQueries.add(Tuple.tuple(originalMultiTermQuery, originalRewriteMethod));
            }
        }
View Full Code Here

    else if( sourceQuery instanceof TermQuery ){
      if( !flatQueries.contains( sourceQuery ) )
        flatQueries.add( sourceQuery );
    }
    else if (sourceQuery instanceof MultiTermQuery && reader != null) {
      MultiTermQuery copy = (MultiTermQuery) sourceQuery.clone();
      copy.setRewriteMethod(new MultiTermQuery.TopTermsScoringBooleanQueryRewrite(MAX_MTQ_TERMS));
      BooleanQuery mtqTerms = (BooleanQuery) copy.rewrite(reader);
      flatten(mtqTerms, reader, flatQueries);
    }
    else if( sourceQuery instanceof PhraseQuery ){
      if( !flatQueries.contains( sourceQuery ) ){
        PhraseQuery pq = (PhraseQuery)sourceQuery;
View Full Code Here

TOP

Related Classes of org.apache.lucene.search.MultiTermQuery$ScoringBooleanQueryRewrite

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.