Package org.apache.lucene.search

Examples of org.apache.lucene.search.Weight


   * not a direct test of NearSpans, but a demonstration of how/when
   * this causes problems
   */
  public void testSpanNearScorerSkipTo1() throws Exception {
    SpanNearQuery q = makeQuery();
    Weight w = q.weight(searcher);
    Scorer s = w.scorer(searcher.getIndexReader(), true, false);
    assertEquals(1, s.advance(1));
  }
View Full Code Here


    IndexSearcher searcher = new IndexSearcher(reader);
    try {
      for (QueryAndLimit ent : queriesIter) {
        Query query = ent.query;
        int limit = ent.limit;
        Weight weight = query.weight(searcher);
        Scorer scorer = weight.scorer(reader, true, false);
        if (scorer != null) {
          while(true)  {
            int doc = scorer.nextDoc();
            if (doc >= limit)
              break;
View Full Code Here

      setFacetHitCollectorList(facetHitCollectorList);

      try {
          Query query = req.getQuery();
          Weight weight = createNormalizedWeight(query);
          search(weight, finalFilter, collector, start, req.getMapReduceWrapper());
      } finally {
        for (FacetHitCollector facetCollector : facetHitCollectorList) {
          String name = facetCollector.facetHandler.getName();
          LinkedList<FacetCountCollector> resultcollector = null;
View Full Code Here

    }
  }

  @Override
  public void search(Query query, Filter filter, Collector collector) throws IOException {
    Weight weight = createNormalizedWeight(query);
    search(weight, filter, collector, 0, null);
  }
View Full Code Here

   * @return a Weight that applies the predicate to the query.
   * @throws IOException if IO issues occur.
   */
  @Override
  public Weight createWeight(final Searcher searcher) throws IOException {
    final Weight weight = this.query.createWeight(searcher);
    final Similarity similarity = this.query.getSimilarity(searcher);

    return new Weight() {
      private float value;

      // pass these methods through to enclosed query's weight
      @Override
      public float getValue() {
        return this.value;
      }

      @Override
      public boolean scoresDocsOutOfOrder() {
        return false;
      }

      public float sumOfSquaredWeights() throws IOException {
        return weight.sumOfSquaredWeights() * getBoost() * getBoost();
      }

      @Override
      public void normalize(final float v) {
        weight.normalize(v * getBoost()); // incorporate boost
        this.value = weight.getValue();
      }

      @Override
      public Explanation explain(final IndexReader reader, final int i)
          throws IOException {
        Explanation inner = weight.explain(reader, i);
        Bits predicate = PredicateQuery.this.predicate.get(reader);
        if (predicate.get(i)) {
          return inner;
        } else {
          Explanation result = new Explanation(0.0f,
View Full Code Here

   * @throws IOException in case a search exception occurs
   */
  private void updateTopDocs(int n) throws IOException {
    int totalMaxDocs = searcher.getSearcher().maxDoc();
    final int maxDocs = Math.min( n, totalMaxDocs );
    final Weight weight = preparedQuery.weight( searcher.getSearcher() );

    final TopDocsCollector<?> topDocCollector;
    final TotalHitCountCollector hitCountCollector;
    Collector collector = null;
    if ( maxDocs != 0 ) {
View Full Code Here

      TopDocs hits = null;
      final int numHits = numHits();
      if (numHits > 0) {
        if (withCollector() == false) {
          if (sort != null) {
            Weight w = searcher.createNormalizedWeight(q);
            TopFieldCollector collector = TopFieldCollector.create(sort, numHits,
                                                                   true, withScore(),
                                                                   withMaxScore(),
                                                                   !w.scoresDocsOutOfOrder());
            searcher.search(w, null, collector);
            hits = collector.topDocs();
          } else {
            hits = searcher.search(q, numHits);
          }
View Full Code Here

      IndexSearcher searcher = new IndexSearcher(reader);
      try {
        for (Entry<Query, Integer> entry : deletes.queries.entrySet()) {
          Query query = entry.getKey();
          int limit = entry.getValue().intValue();
          Weight weight = query.weight(searcher);
          Scorer scorer = weight.scorer(reader, true, false);
          if (scorer != null) {
            while(true)  {
              int doc = scorer.nextDoc();
              if (doc >= limit)
                break;
View Full Code Here

      TopDocs hits = null;
      final int numHits = numHits();
      if (numHits > 0) {
        if (withCollector() == false) {
          if (sort != null) {
            Weight w = q.weight(searcher);
            TopFieldCollector collector = TopFieldCollector.create(sort, numHits,
                                                                   true, withScore(),
                                                                   withMaxScore(),
                                                                   !w.scoresDocsOutOfOrder());
            searcher.search(w, null, collector);
            hits = collector.topDocs();
          } else {
            hits = searcher.search(q, numHits);
          }
View Full Code Here

    // Delete by query
    IndexSearcher searcher = new IndexSearcher(reader);
    for (Entry<Query, Integer> entry : deletesFlushed.queries.entrySet()) {
      Query query = entry.getKey();
      int limit = entry.getValue().intValue();
      Weight weight = query.weight(searcher);
      Scorer scorer = weight.scorer(reader, true, false);
      if (scorer != null) {
        while(true)  {
          int doc = scorer.nextDoc();
          if (((long) docIDStart) + doc >= limit)
            break;
View Full Code Here

TOP

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

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.