Package org.apache.lucene.search

Examples of org.apache.lucene.search.QueryWrapperFilter


    document.add(new StringField("fieldXXX", "x", Field.Store.NO));
    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
    );

    // Sort by field ascending, order first
    ToParentBlockJoinSortField sortField = new ToParentBlockJoinSortField(
        "field2", SortField.Type.STRING, false, wrap(parentFilter), wrap(childFilter)
    );
    Sort sort = new Sort(sortField);
    TopFieldDocs topDocs = searcher.search(query, 5, sort);
    assertEquals(7, topDocs.totalHits);
    assertEquals(5, topDocs.scoreDocs.length);
    assertEquals(3, topDocs.scoreDocs[0].doc);
    assertEquals("a", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[0]).fields[0]).utf8ToString());
    assertEquals(7, topDocs.scoreDocs[1].doc);
    assertEquals("c", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[1]).fields[0]).utf8ToString());
    assertEquals(11, topDocs.scoreDocs[2].doc);
    assertEquals("e", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[2]).fields[0]).utf8ToString());
    assertEquals(15, topDocs.scoreDocs[3].doc);
    assertEquals("g", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[3]).fields[0]).utf8ToString());
    assertEquals(19, topDocs.scoreDocs[4].doc);
    assertEquals("i", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[4]).fields[0]).utf8ToString());

    // Sort by field ascending, order last
    sortField = new ToParentBlockJoinSortField(
        "field2", SortField.Type.STRING, false, true, wrap(parentFilter), wrap(childFilter)
    );
    sort = new Sort(sortField);
    topDocs = searcher.search(query, 5, sort);
    assertEquals(7, topDocs.totalHits);
    assertEquals(5, topDocs.scoreDocs.length);
    assertEquals(3, topDocs.scoreDocs[0].doc);
    assertEquals("c", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[0]).fields[0]).utf8ToString());
    assertEquals(7, topDocs.scoreDocs[1].doc);
    assertEquals("e", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[1]).fields[0]).utf8ToString());
    assertEquals(11, topDocs.scoreDocs[2].doc);
    assertEquals("g", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[2]).fields[0]).utf8ToString());
    assertEquals(15, topDocs.scoreDocs[3].doc);
    assertEquals("i", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[3]).fields[0]).utf8ToString());
    assertEquals(19, topDocs.scoreDocs[4].doc);
    assertEquals("k", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[4]).fields[0]).utf8ToString());

    // Sort by field descending, order last
    sortField = new ToParentBlockJoinSortField(
        "field2", SortField.Type.STRING, true, wrap(parentFilter), wrap(childFilter)
    );
    sort = new Sort(sortField);
    topDocs = searcher.search(query, 5, sort);
    assertEquals(topDocs.totalHits, 7);
    assertEquals(5, topDocs.scoreDocs.length);
    assertEquals(28, topDocs.scoreDocs[0].doc);
    assertEquals("o", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[0]).fields[0]).utf8ToString());
    assertEquals(23, topDocs.scoreDocs[1].doc);
    assertEquals("m", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[1]).fields[0]).utf8ToString());
    assertEquals(19, topDocs.scoreDocs[2].doc);
    assertEquals("k", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[2]).fields[0]).utf8ToString());
    assertEquals(15, topDocs.scoreDocs[3].doc);
    assertEquals("i", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[3]).fields[0]).utf8ToString());
    assertEquals(11, topDocs.scoreDocs[4].doc);
    assertEquals("g", ((BytesRef) ((FieldDoc) topDocs.scoreDocs[4]).fields[0]).utf8ToString());

    // Sort by field descending, order last, sort filter (filter_1:T)
    childFilter = new QueryWrapperFilter(new TermQuery((new Term("filter_1", "T"))));
    query = new ToParentBlockJoinQuery(
        new FilteredQuery(new MatchAllDocsQuery(), childFilter),
        new CachingWrapperFilter(parentFilter),
        ScoreMode.None
    );
View Full Code Here


  public DistanceFilter(Filter previousFilter, Point center, double radius, String coordinatesField) {
    if ( previousFilter != null ) {
      this.previousFilter = previousFilter;
    }
    else {
      this.previousFilter = new QueryWrapperFilter( new MatchAllDocsQuery() );
    }
    this.center = center;
    this.radius = radius;
    this.coordinatesField = coordinatesField;
  }
View Full Code Here

  public DistanceFilter(Filter previousFilter, Point center, double radius, String latitudeField, String longitudeField) {
    if ( previousFilter != null ) {
      this.previousFilter = previousFilter;
    }
    else {
      this.previousFilter = new QueryWrapperFilter( new MatchAllDocsQuery() );
    }
    this.center = center;
    this.radius = radius;
    this.coordinatesField = null;
    this.latitudeField = latitudeField;
View Full Code Here

   *
   * @see Query
   * @see org.hibernate.search.spatial.Coordinates
   */
  public static Query buildDistanceQuery(Point center, double radius, String fieldName) {
    Filter allFilter = new QueryWrapperFilter( new MatchAllDocsQuery() );
    return new ConstantScoreQuery( buildDistanceFilter( allFilter, center, radius, fieldName ) );
  }
View Full Code Here

    boxQuery.add(latQuery, BooleanClause.Occur.MUST);
    boxQuery.add(longQuery, BooleanClause.Occur.MUST);

    return new ConstantScoreQuery(
        buildDistanceFilter(
            new QueryWrapperFilter( boxQuery ),
            center,
            radius,
            latitudeFieldName,
            longitudeFieldName
        )
View Full Code Here

          Query selectionGroupQuery = createSelectionGroupQuery( selection );
          boolQuery.add( selectionGroupQuery, BooleanClause.Occur.MUST );
        }
      }
      if ( boolQuery.getClauses().length > 0 ) {
        this.facetFilter = new QueryWrapperFilter( boolQuery );
      }
    }
    return facetFilter;
  }
View Full Code Here

    finalQuery.setBoost( boost * finalQuery.getBoost() );
    if ( filter != null ) {
      finalQuery = new FilteredQuery(finalQuery, filter);
    }
    if ( constantScore ) {
      finalQuery = new ConstantScoreQuery( new QueryWrapperFilter( finalQuery ) );
    }
    return finalQuery;
  }
View Full Code Here

  }

  @Factory
  public Filter getFilter() {
    Query query = new TermQuery( new Term("teacher", login) );
    return new CachingWrapperFilter( new QueryWrapperFilter(query) );
  }
View Full Code Here

            double miles;
            Filter startingFilter;
            if (maybeMiles == null) {
                miles = DEFAULT_RADIUS;
                startingFilter =
                    new QueryWrapperFilter(new MatchAllDocsQuery());
            } else {
                miles = maybeMiles.doubleValue();
                startingFilter =
                    getBoundingBoxFilter(lat, lng, miles, latField, lngField);
            }
View Full Code Here

                                     final double center, final double radius) {
        final SchemaField field = req.getSchema().getField(fieldName);
        final Query boundingQuery = field.getType().getRangeQuery(
                this, field, new Double(center - radius).toString(),
                new Double(center + radius).toString(), true, true);
        return new QueryWrapperFilter(boundingQuery);
    }
View Full Code Here

TOP

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

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.