Package org.apache.solr.search

Examples of org.apache.solr.search.DocIterator


        return ids.offset();
      }

      public void writeDocs(boolean includeScore, Set<String> fields) throws IOException {
        SolrIndexSearcher searcher = request.getSearcher();
        DocIterator iterator = ids.iterator();
        int sz = ids.size();
        includeScore = includeScore && ids.hasScores();
        for (int i=0; i<sz; i++) {
          int id = iterator.nextDoc();
          Document doc = searcher.doc(id, fields);
          writeDoc(null, doc, fields, (includeScore ? iterator.score() : 0.0f), includeScore);
        }
      }
    }, fields );
  }
View Full Code Here


     
      if(container.countOnly())
      {
        cnt.val+=container.baseDocs.size();
      }else{
        DocIterator iter = container.baseDocs.iterator();
        if(container.noDist()){
          while (iter.hasNext()) {
            int doc = iter.nextDoc();
            cnt.val++;
            container.updateStat(cnt, doc);
          }
        }else if(container.noStat()){
          while (iter.hasNext()) {
            int doc = iter.nextDoc();
            cnt.val++;
            if(issetDist)
            {
              container.updateDist(cnt, doc);
            }
          }
        }else{
          while (iter.hasNext()) {
            int doc = iter.nextDoc();
            cnt.val++;
            container.updateStat(cnt, doc);
            if(issetDist)
            {
            container.updateDist(cnt, doc);
            }
          }
        }
      }
    }else{
      DocIterator iter = container.baseDocs.iterator();

      if (container.countOnly())
      {
        while (iter.hasNext()) {
          int doc = iter.nextDoc();
          if (container.toGroupsByJoin(doc, group)&&container.pre.contains(group)) {
            RefRow cnt = this.makeOrGetGroup(groups, group);
            cnt.val++;
            this.delayPut(groups, cnt,group);
          }
       
        }

      } else if (container.noDist()) {
        while (iter.hasNext()) {
          int doc = iter.nextDoc();

          if (container.toGroupsByJoin(doc, group)&&container.pre.contains(group)) {
            RefRow cnt = this.makeOrGetGroup(groups, group);
            cnt.val++;
            container.updateStat(cnt, doc);
            this.delayPut(groups, cnt, group);
          }
       
        }

      } else if (container.noStat()) {
        while (iter.hasNext()) {
          int doc = iter.nextDoc();

          if (container.toGroupsByJoin(doc, group)&&container.pre.contains(group)) {
            RefRow cnt = this.makeOrGetGroup(groups, group);
            cnt.val++;
            if(issetDist)
            {
              container.updateDist(cnt, doc);
            }
            this.delayPut(groups, cnt, group);
          }
       
        }
      } else {
        while (iter.hasNext()) {
          int doc = iter.nextDoc();

          if (container.toGroupsByJoin(doc, group)&&container.pre.contains(group)) {
            RefRow cnt = this.makeOrGetGroup(groups, group);
            cnt.val++;
            container.updateStat(cnt, doc);
View Full Code Here

    incLevel();
    boolean first=true;

    SolrIndexSearcher searcher = req.getSearcher();
    DocIterator iterator = ids.iterator();
    for (int i=0; i<sz; i++) {
      int id = iterator.nextDoc();
      Document doc = searcher.doc(id, fields);

      if (first) {
        first=false;
      } else {
        writeArraySeparator();
      }
      indent();
      writeDoc(null, doc, fields, (includeScore ? iterator.score() : 0.0f), includeScore);
    }
    decLevel();
    writeArrayCloser();

    if (otherFields !=null) {
View Full Code Here

      ParseException {
    if(this.crcget==null)
    {
   
      this.container=this.parse.createContainer(fields, baseDocs, this.reader, this.searcher, this.req);
      DocIterator iter = baseDocs.iterator();
      int doc=-1;
      if(this.container.isUseJoinSort())
      {
        int cmpValue=0;
        while (iter.hasNext()) {
          doc = iter.nextDoc();
          if(!this.container.containsInJoins(doc))
          {
            continue;
          }
          cmpValue=this.container.getJoinCompareValue(doc);
          SelectDetailRow row = SelectDetailRow.INSTANCE(doc,cmpValue);
          QueuePutUtils.put2QueueDetail(row, this.container.res, this.parse.limit_offset, this.container.cmpTermNum);
          this.recordCount.inc(1);
        }
      }else if(this.container.isColumnSort())
      {
        int cmpValue=0;
       
          while (iter.hasNext()) {
            doc = iter.nextDoc();
            if(!this.container.containsInJoins(doc))
            {
              continue;
            }
            cmpValue =this.container.getColumnCompareValue(doc);
            SelectDetailRow row = SelectDetailRow.INSTANCE(doc,cmpValue);
            QueuePutUtils.put2QueueDetail(row, this.container.res, this.parse.limit_offset, this.container.cmpTermNum);
            this.recordCount.inc(1);
          }
      }else{
        while (iter.hasNext()) {
          doc = iter.nextDoc();
          if(!this.container.containsInJoins(doc))
          {
            continue;
          }
          SelectDetailRow row = SelectDetailRow.INSTANCE(doc,doc);
          QueuePutUtils.put2QueueDetail(row, this.container.res, this.parse.limit_offset, this.container.cmpTermNum);
          this.recordCount.inc(1);
          if(this.container.res.size()>=this.parse.limit_offset)
          {
            break;
          }
        }
        while (iter.hasNext()) {
          doc = iter.nextDoc();
          if(!this.container.containsInJoins(doc))
          {
            continue;
          }
          this.recordCount.inc(1);
View Full Code Here

  int[][] join=null;
  private int[] joinRevert=null;
  public DocSet filterByRight(DocSet leftDocs,DocSet rightDocs)
  {
    BitDocSet docset=new BitDocSet();
    DocIterator iter = rightDocs.iterator();
    while (iter.hasNext()) {
      int doc = iter.nextDoc();
      int[] list=join[doc];
      if(list==null)
      {
        continue;
      }
View Full Code Here

  public NamedList get(String[] fields, DocSet baseDocs) throws IOException,
      ParseException {
      if(this.crcget==null)
      {
        this.container=this.parse.createContainer(fields, baseDocs, this.reader, this.searcher, this.req);
        DocIterator iter = baseDocs.iterator();
        this.recordCount.inc(baseDocs.size());
        Doclist res=new Doclist(this.parse.limit_offset);
        int doc=-1;
        while (iter.hasNext()) {
          doc = iter.nextDoc();
          res.add(doc);
          if(res.index>=this.parse.limit_offset)
          {
            break;
          }
View Full Code Here

    if (this.uni.baseAdvanceDocs == null) {
      return;
    }

    log.info("setTdIndex_NULL :"+this.uni.baseAdvanceDocs.size());
    DocIterator iter = this.uni.baseAdvanceDocs.iterator();
    while (iter.hasNext()) {
      int doc = iter.nextDoc();
      this.uni.bits.add(doc);
      this.uni.markDocTm(doc, this.uni.getNullTm(),false);
    }
   
    this.uni.baseAdvanceDocs=null;
View Full Code Here

  }
 
  private void cleanBase(DocSetCollector collect)
  {
    DocSet docsit=collect.getDocSet();
    DocIterator toremove = docsit.iterator();
    while (toremove.hasNext()) {
      int doc = toremove.nextDoc();
      this.uni.baseAdvanceDocs.clear(doc);
    }
   
   
View Full Code Here

  private int set_Doc2TermNum_Skip(TermDocs td,int[] docs,int[] freqs,int termNum,boolean isinit,int maxDoc) throws IOException
  {
    int skipcount=0;
     
    DocSetCollector collect=new DocSetCollector(10240, maxDoc);
    DocIterator iter = this.uni.baseAdvanceDocs.iterator();
    int doc=-1;
    int baseDoc=-1;
   
    while (iter.hasNext()) {
      doc = iter.nextDoc();
      if(doc<baseDoc)
      {
        continue;
      }
     
View Full Code Here

      int tm = 0;
      long l1=System.currentTimeMillis();

      if (inv.fieldDataType == FieldDatatype.d_double) {
        if (baseAdvanceDocs != null) {
          DocIterator iter = baseAdvanceDocs.iterator();
          while (iter.hasNext()) {
            doc = iter.nextDoc();
            tm = docValues.readTm(doc);
            inv.markDocTm(doc, tm, isinit);
            inv.bits.add(doc);
            if (isReadDouble) {
              inv.setTmValueDouble(tm,RamTermNumValue.EMPTY_FOR_MARK);
            }
          }
        } else {
          for (doc = 0; doc < maxdoc; doc++) {
            tm = docValues.readTm(doc);
            inv.markDocTm(doc, tm, isinit);
            inv.bits.add(doc);
            if (isReadDouble) {
              inv.setTmValueDouble(tm,RamTermNumValue.EMPTY_FOR_MARK);
            }
          }
        }
      } else {
        if (baseAdvanceDocs != null) {
          DocIterator iter = baseAdvanceDocs.iterator();
          while (iter.hasNext()) {
            doc = iter.nextDoc();
            tm = docValues.readTm(doc);
            inv.markDocTm(doc, tm, isinit);
            inv.bits.add(doc);
            if (isReadDouble) {
              inv.setTmValueLong(tm,  (long) RamTermNumValue.EMPTY_FOR_MARK);
View Full Code Here

TOP

Related Classes of org.apache.solr.search.DocIterator

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.