Package org.apache.lucene.util

Examples of org.apache.lucene.util.OpenBitSetDISI


    throws IOException
    {
        if (logic.length != chain.length)
            throw new IllegalArgumentException("Invalid number of elements in logic array");

        OpenBitSetDISI result = initialResult(reader, logic[0], index);
        for (; index[0] < chain.length; index[0]++)
        {
            doChain(result, logic[index[0]], chain[index[0]].getDocIdSet(reader));
        }
        return finalResult(result, reader.maxDoc());
View Full Code Here


    final OpenBitSet complement;
    if (docIdSet instanceof OpenBitSet) {
      // That is the most common case, if ScoredDocIdsCollector was used.
      complement = (OpenBitSet) ((OpenBitSet) docIdSet).clone();
    } else {
      complement = new OpenBitSetDISI(docIdSet.iterator(), maxDoc);
    }

    complement.flip(0, maxDoc);

    // Remove all Deletions from the complement set
View Full Code Here

      }

      public int size() {
        // lazy size computation
        if (size < 0) {
          OpenBitSetDISI openBitSetDISI;
          try {
            openBitSetDISI = new OpenBitSetDISI(docIdSet.iterator(), maxDoc);
          } catch (IOException e) {
            throw new RuntimeException(e);
          }
          size = (int) openBitSetDISI.cardinality();
        }
        return size;
      }
    };
  }
View Full Code Here

                        bitset.set(node.getDoc(reader));
                    }
                    i++;
//                }
            }
            docIds = new OpenBitSetDISI(new DocIdBitSet(bitset).iterator(), bitset.size());
        } catch (IOException e) {
            log.debug("Can't retrive bitset from hits", e);
        }
        return docIds;
    }
View Full Code Here

                        bitset.set(hit.getId());                       
                    }
                }
                bitset.set(docId);
            }
            docIds = new OpenBitSetDISI(new DocIdBitSet(bitset).iterator(), bitset.size());
        } catch (IOException e) {
            logger.debug("Can't retrive bitset from hits", e);
        }
        return docIds;
    }
View Full Code Here

     * Returns the a DocIdSetIterator representing the Boolean composition
     * of the filters that have been added.
     */
    @Override
    public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
        OpenBitSetDISI res = null;

        if (shouldFilters != null) {
            for (int i = 0; i < shouldFilters.size(); i++) {
                if (res == null) {
                    res = new OpenBitSetDISI(getDISI(shouldFilters, i, reader), reader.maxDoc());
                } else {
                    DocIdSet dis = shouldFilters.get(i).getDocIdSet(reader);
                    if (dis instanceof OpenBitSet) {
                        // optimized case for OpenBitSets
                        res.or((OpenBitSet) dis);
                    } else if (dis instanceof OpenBitDocSet) {
                        res.or(((OpenBitDocSet) dis).set());
                    } else {
                        res.inPlaceOr(getDISI(shouldFilters, i, reader));
                    }
                }
            }
        }

        if (notFilters != null) {
            for (int i = 0; i < notFilters.size(); i++) {
                if (res == null) {
                    res = new OpenBitSetDISI(getDISI(notFilters, i, reader), reader.maxDoc());
                    res.flip(0, reader.maxDoc()); // NOTE: may set bits on deleted docs
                } else {
                    DocIdSet dis = notFilters.get(i).getDocIdSet(reader);
                    if (dis instanceof OpenBitSet) {
                        // optimized case for OpenBitSets
                        res.andNot((OpenBitSet) dis);
                    } else if (dis instanceof OpenBitDocSet) {
                        res.andNot(((OpenBitDocSet) dis).set());
                    } else {
                        res.inPlaceNot(getDISI(notFilters, i, reader));
                    }
                }
            }
        }

        if (mustFilters != null) {
            for (int i = 0; i < mustFilters.size(); i++) {
                if (res == null) {
                    res = new OpenBitSetDISI(getDISI(mustFilters, i, reader), reader.maxDoc());
                } else {
                    DocIdSet dis = mustFilters.get(i).getDocIdSet(reader);
                    if (dis instanceof OpenBitSet) {
                        // optimized case for OpenBitSets
                        res.and((OpenBitSet) dis);
                    } else if (dis instanceof OpenBitDocSet) {
                        res.and(((OpenBitDocSet) dis).set());
                    } else {
                        res.inPlaceAnd(getDISI(mustFilters, i, reader));
                    }
                }
            }
        }

View Full Code Here

    public OpenBitDocSet(OpenBitSet set) {
        this.set = set;
    }

    public OpenBitDocSet(int numBits) {
        this.set = new OpenBitSetDISI(numBits);
    }
View Full Code Here

    public OpenBitDocSet(int numBits) {
        this.set = new OpenBitSetDISI(numBits);
    }

    public OpenBitDocSet(DocIdSetIterator disi, int numBits) throws IOException {
        this.set = new OpenBitSetDISI(disi, numBits);
    }
View Full Code Here

    private int base;

    public DocIdSetCollector(Collector collector, IndexReader reader) {
        this.collector = collector;
        this.docIdSet = new OpenBitSetDISI(reader.maxDoc());
    }
View Full Code Here

      IndexSearcher searcher = newSearcher(reader);
      searcher.search(q, collector);
      searcher.close();

      ScoredDocIDs scoredDocIds = collector.getScoredDocIDs();
      OpenBitSet resultSet = new OpenBitSetDISI(scoredDocIds.getDocIDs().iterator(), reader.maxDoc());
     
      // Getting the complement set of the query result
      ScoredDocIDs complementSet = ScoredDocIdsUtils.getComplementSet(scoredDocIds, reader);

      assertEquals("Number of documents in complement set mismatch",
          reader.numDocs() - scoredDocIds.size(), complementSet.size());

      // now make sure the documents in the complement set are not deleted
      // and not in the original result set
      ScoredDocIDsIterator compIterator = complementSet.iterator();
      while (compIterator.next()) {
        int docNum = compIterator.getDocID();
        assertFalse(
            "Complement-Set must not contain deleted documents (doc="+docNum+")",
            reader.isDeleted(docNum));
        assertNull(
            "Complement-Set must not contain docs from the original set (doc="+ docNum+")",
            reader.document(docNum).getFieldable("del"));
        assertFalse(
            "Complement-Set must not contain docs from the original set (doc="+docNum+")",
            resultSet.fastGet(docNum));
      }
    } finally {
      reader.close();
      dir.close();
    }
View Full Code Here

TOP

Related Classes of org.apache.lucene.util.OpenBitSetDISI

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.