当前位置: 首页>>代码示例>>Java>>正文


Java DocIterator.nextDoc方法代码示例

本文整理汇总了Java中org.apache.solr.search.DocIterator.nextDoc方法的典型用法代码示例。如果您正苦于以下问题:Java DocIterator.nextDoc方法的具体用法?Java DocIterator.nextDoc怎么用?Java DocIterator.nextDoc使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.solr.search.DocIterator的用法示例。


在下文中一共展示了DocIterator.nextDoc方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: for

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates an NamedList of Explanations for each item in a list of docs.
 *
 * @param query The Query you want explanations in the context of
 * @param docs The Documents you want explained relative that query
 */
public static NamedList<Explanation> getExplanations
  (Query query,
   DocList docs,
   SolrIndexSearcher searcher,
   IndexSchema schema) throws IOException {

  NamedList<Explanation> explainList = new SimpleOrderedMap<>();
  DocIterator iterator = docs.iterator();
  for (int i=0; i<docs.size(); i++) {
    int id = iterator.nextDoc();

    Document doc = searcher.doc(id);
    String strid = schema.printableUniqueKey(doc);

    explainList.add(strid, searcher.explain(query, id) );
  }
  return explainList;
}
 
开发者ID:europeana,项目名称:search,代码行数:25,代码来源:SolrPluginUtils.java

示例2: printDocIDs

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
@SuppressWarnings("unused")
private void printDocIDs(DocSet fromSet) throws IOException {
	// Only used in debugging.
	System.out.println("---------------------------");
	DocIterator iter = fromSet.iterator();
	while (iter.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
		Integer docId = iter.next();
		Document d = fromSearcher.doc(docId);
		String id = d.getValues("id")[0];
		// TODO :log message  (this is too verbose?)
		if (debug) {
			System.out.println("INTERNAL ID : " + docId + " DOC : " + id);
		}
	}
	System.out.println("---------------------------");
}
 
开发者ID:kwatters,项目名称:solrgraph,代码行数:17,代码来源:GraphQuery.java

示例3: for

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates an NamedList of Explanations for each item in a list of docs.
 *
 * @param query The Query you want explanations in the context of
 * @param docs The Documents you want explained relative that query
 */
public static NamedList<Explanation> getExplanations
  (Query query,
   DocList docs,
   SolrIndexSearcher searcher,
   IndexSchema schema) throws IOException {

  NamedList<Explanation> explainList = new SimpleOrderedMap<Explanation>();
  DocIterator iterator = docs.iterator();
  for (int i=0; i<docs.size(); i++) {
    int id = iterator.nextDoc();

    Document doc = searcher.doc(id);
    String strid = schema.printableUniqueKey(doc);

    explainList.add(strid, searcher.explain(query, id) );
  }
  return explainList;
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:25,代码来源:SolrPluginUtils.java

示例4: toDocIDs

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/** Converts solr's DocList to the int[] docIDs */
protected int[] toDocIDs(DocList docs) {
  int[] docIDs = new int[docs.size()];
  DocIterator iterator = docs.iterator();
  for (int i = 0; i < docIDs.length; i++) {
    if (!iterator.hasNext()) {
      throw new AssertionError();
    }
    docIDs[i] = iterator.nextDoc();
  }
  if (iterator.hasNext()) {
    throw new AssertionError();
  }
  return docIDs;
}
 
开发者ID:europeana,项目名称:search,代码行数:16,代码来源:PostingsSolrHighlighter.java

示例5: shouldElementBeIgnored

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
private boolean shouldElementBeIgnored(long dbId, SolrIndexSearcher solrIndexSearcher, DocSet skippingDocs) throws IOException
{
    boolean result = false;

    if ((skipDescendantAuxDocsForSpecificTypes && !typesForSkippingDescendantAuxDocs.isEmpty())
            || (skipDescendantAuxDocsForSpecificAspects && !aspectsForSkippingDescendantAuxDocs.isEmpty()))
    {
        BooleanQuery query = new BooleanQuery();
        query.add(new TermQuery(new Term(QueryConstants.FIELD_DBID, NumericEncoder.encode(dbId))), Occur.MUST);

        DocSet docSet = solrIndexSearcher.getDocSet(query);

        int index = -1;
        if (docSet instanceof BitDocSet)
        {
            BitDocSet source = (BitDocSet) docSet;
            OpenBitSet openBitSet = source.getBits();
            index = openBitSet.nextSetBit(index + 1);
        }
        else
        {
            DocIterator it = docSet.iterator();
            if (it.hasNext())
            {
                index = it.nextDoc();
            }
        }

        result = (-1 != index) && skippingDocs.exists(index);
    }

    return result;
}
 
开发者ID:Alfresco,项目名称:community-edition-old,代码行数:34,代码来源:LegacySolrInformationServer.java

示例6: toTopDocs

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/** Converts solr's DocList to a lucene TopDocs */
protected TopDocs toTopDocs(DocList docs) {
  ScoreDoc[] scoreDocs = new ScoreDoc[docs.size()];
  DocIterator iterator = docs.iterator();
  for (int i = 0; i < scoreDocs.length; i++) {
    if (!iterator.hasNext()) {
      throw new AssertionError();
    }
    scoreDocs[i] = new ScoreDoc(iterator.nextDoc(), Float.NaN);
  }
  if (iterator.hasNext()) {
    throw new AssertionError();
  }
  return new TopDocs(docs.matches(), scoreDocs, Float.NaN);
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:16,代码来源:PostingsSolrHighlighter.java

示例7: restoreTopDocs

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * restore <code>TopDocs</code> from <code>DocListAndSet</code>
 * 
 * @param results
 * @return
 */
private TopDocs restoreTopDocs(DocList docList) {
    int idx = 0;
    ScoreDoc[] scoreDocs = new ScoreDoc[docList.size()];
    DocIterator iterator = docList.iterator();
    while (iterator.hasNext()) {
        int docId = iterator.nextDoc();
        scoreDocs[idx++] = new ScoreDoc(docId, -1);
    }
    return new TopDocs(docList.matches(), scoreDocs, -1);
}
 
开发者ID:atware,项目名称:solr-leaning2rank,代码行数:17,代码来源:RankingComponent.java

示例8: process

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
@Override
public void process(final ResponseBuilder rb) throws IOException {
    final DocListAndSet results = rb.getResults();
    if (results != null) {
        final SolrQueryRequest req = rb.req;
        final SolrParams params = req.getParams();
        final String[] docValuesFields = params.getParams(DCF);
        if (docValuesFields == null) {
            return;
        }

        final DocList docs = results.docList;
        final NamedList<List<Long>> fragments = new SimpleOrderedMap<List<Long>>();
        final AtomicReader reader = req.getSearcher().getAtomicReader();
        for (final String field : docValuesFields) {
            final NumericDocValues numericDocValues = reader
                    .getNumericDocValues(field);
            if (numericDocValues == null) {
                continue;
            }
            final List<Long> valueList = new ArrayList<Long>();
            final DocIterator iterator = docs.iterator();
            for (int i = 0; i < docs.size(); i++) {
                final int docId = iterator.nextDoc();
                final long value = numericDocValues.get(docId);
                valueList.add(value);
            }
            fragments.add(field, valueList);
        }
        if (fragments.size() != 0) {
            rb.rsp.add(DOC_VALUES, fragments);
        }
    }
}
 
开发者ID:codelibs,项目名称:fess-solr-plugin,代码行数:35,代码来源:DocValuesComponent.java

示例9: getMoreLikeThese

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
NamedList<DocList> getMoreLikeThese(ResponseBuilder rb,
    SolrIndexSearcher searcher, DocList docs, int flags) throws IOException {
  SolrParams p = rb.req.getParams();
  IndexSchema schema = searcher.getSchema();
  MoreLikeThisHandler.MoreLikeThisHelper mltHelper = new MoreLikeThisHandler.MoreLikeThisHelper(
      p, searcher);
  NamedList<DocList> mlt = new SimpleOrderedMap<>();
  DocIterator iterator = docs.iterator();
  
  SimpleOrderedMap<Object> dbg = null;
  if (rb.isDebug()) {
    dbg = new SimpleOrderedMap<>();
  }
  
  while (iterator.hasNext()) {
    int id = iterator.nextDoc();
    int rows = p.getInt(MoreLikeThisParams.DOC_COUNT, 5);
    DocListAndSet sim = mltHelper.getMoreLikeThis(id, 0, rows, null, null,
        flags);
    String name = schema.printableUniqueKey(searcher.doc(id));
    mlt.add(name, sim.docList);
    
    if (dbg != null) {
      SimpleOrderedMap<Object> docDbg = new SimpleOrderedMap<>();
      docDbg.add("rawMLTQuery", mltHelper.getRawMLTQuery().toString());
      docDbg
          .add("boostedMLTQuery", mltHelper.getBoostedMLTQuery().toString());
      docDbg.add("realMLTQuery", mltHelper.getRealMLTQuery().toString());
      SimpleOrderedMap<Object> explains = new SimpleOrderedMap<>();
      DocIterator mltIte = sim.docList.iterator();
      while (mltIte.hasNext()) {
        int mltid = mltIte.nextDoc();
        String key = schema.printableUniqueKey(searcher.doc(mltid));
        explains.add(key,
            searcher.explain(mltHelper.getRealMLTQuery(), mltid));
      }
      docDbg.add("explain", explains);
      dbg.add(name, docDbg);
    }
  }
  
  // add debug information
  if (dbg != null) {
    rb.addDebugInfo("moreLikeThis", dbg);
  }
  return mlt;
}
 
开发者ID:europeana,项目名称:search,代码行数:48,代码来源:MoreLikeThisComponent.java

示例10: doHighlighting

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates a list of Highlighted query fragments for each item in a list
 * of documents, or returns null if highlighting is disabled.
 *
 * @param docs query results
 * @param query the query
 * @param req the current request
 * @param defaultFields default list of fields to summarize
 *
 * @return NamedList containing a NamedList for each document, which in 
 * turns contains sets (field, summary) pairs.
 */
@Override
@SuppressWarnings("unchecked")
public NamedList<Object> doHighlighting(DocList docs, Query query, SolrQueryRequest req, String[] defaultFields) throws IOException {
  SolrParams params = req.getParams(); 
  if (!isHighlightingEnabled(params))
      return null;
   
  SolrIndexSearcher searcher = req.getSearcher();
  IndexSchema schema = searcher.getSchema();
  NamedList fragments = new SimpleOrderedMap();
  String[] fieldNames = getHighlightFields(query, req, defaultFields);
  Set<String> fset = new HashSet<>();
   
  {
    // pre-fetch documents using the Searcher's doc cache
    for(String f : fieldNames) { fset.add(f); }
    // fetch unique key if one exists.
    SchemaField keyField = schema.getUniqueKeyField();
    if(null != keyField)
      fset.add(keyField.getName());  
  }

  // get FastVectorHighlighter instance out of the processing loop
  FastVectorHighlighter fvh = new FastVectorHighlighter(
      // FVH cannot process hl.usePhraseHighlighter parameter per-field basis
      params.getBool( HighlightParams.USE_PHRASE_HIGHLIGHTER, true ),
      // FVH cannot process hl.requireFieldMatch parameter per-field basis
      params.getBool( HighlightParams.FIELD_MATCH, false ) );
  fvh.setPhraseLimit(params.getInt(HighlightParams.PHRASE_LIMIT, SolrHighlighter.DEFAULT_PHRASE_LIMIT));
  FieldQuery fieldQuery = fvh.getFieldQuery( query, searcher.getIndexReader() );

  // Highlight each document
  DocIterator iterator = docs.iterator();
  for (int i = 0; i < docs.size(); i++) {
    int docId = iterator.nextDoc();
    Document doc = searcher.doc(docId, fset);
    NamedList docSummaries = new SimpleOrderedMap();
    for (String fieldName : fieldNames) {
      fieldName = fieldName.trim();
      if( useFastVectorHighlighter( params, schema, fieldName ) )
        doHighlightingByFastVectorHighlighter( fvh, fieldQuery, req, docSummaries, docId, doc, fieldName );
      else
        doHighlightingByHighlighter( query, req, docSummaries, docId, doc, fieldName );
    }
    String printId = schema.printableUniqueKey(doc);
    fragments.add(printId == null ? null : printId, docSummaries);
  }
  return fragments;
}
 
开发者ID:europeana,项目名称:search,代码行数:62,代码来源:DefaultSolrHighlighter.java

示例11: doHighlighting

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates a list of Highlighted query fragments for each item in a list of documents, or returns null if
 * highlighting is disabled.
 *
 * @param docs
 *            query results
 * @param query
 *            the query
 * @param req
 *            the current request
 * @param defaultFields
 *            default list of fields to summarize
 * @return NamedList containing a NamedList for each document, which in turns contains sets (field, summary) pairs.
 */
@Override
@SuppressWarnings("unchecked")
public NamedList<Object> doHighlighting(DocList docs, Query query, SolrQueryRequest req, String[] defaultFields) throws IOException
{
    SolrParams params = req.getParams();
    if (!isHighlightingEnabled(params))
        return null;

    SolrIndexSearcher searcher = req.getSearcher();
    IndexSchema schema = searcher.getSchema();
    NamedList fragments = new SimpleOrderedMap();
    String[] fieldNames = getHighlightFields(query, req, defaultFields);
    Set<String> fset = new HashSet<>();

    {
        // pre-fetch documents using the Searcher's doc cache
        for (String f : fieldNames)
        {
            fset.add(f);
        }
        // fetch unique key if one exists.
        SchemaField keyField = schema.getUniqueKeyField();
        if (null != keyField)
            fset.add(keyField.getName());
    }

    // get FastVectorHighlighter instance out of the processing loop
    FastVectorHighlighter fvh = new FastVectorHighlighter(
    // FVH cannot process hl.usePhraseHighlighter parameter per-field basis
            params.getBool(HighlightParams.USE_PHRASE_HIGHLIGHTER, true),
            // FVH cannot process hl.requireFieldMatch parameter per-field basis
            params.getBool(HighlightParams.FIELD_MATCH, false));
    fvh.setPhraseLimit(params.getInt(HighlightParams.PHRASE_LIMIT, SolrHighlighter.DEFAULT_PHRASE_LIMIT));
    FieldQuery fieldQuery = fvh.getFieldQuery(query, searcher.getIndexReader());

    // Highlight each document
    DocIterator iterator = docs.iterator();
    for (int i = 0; i < docs.size(); i++)
    {
        int docId = iterator.nextDoc();
        Document doc = getDocument(searcher.doc(docId, fset), req);
        NamedList docSummaries = new SimpleOrderedMap();
        for (String fieldName : fieldNames)
        {
            fieldName = fieldName.trim();
            if (useFastVectorHighlighter(params, schema, fieldName))
                doHighlightingByFastVectorHighlighter(fvh, fieldQuery, req, docSummaries, docId, doc, fieldName);
            else
                doHighlightingByHighlighter(query, req, docSummaries, docId, doc, fieldName);
        }
        String printId = schema.printableUniqueKey(doc);
        fragments.add(printId == null ? null : printId, docSummaries);
    }
    return fragments;
}
 
开发者ID:Alfresco,项目名称:community-edition-old,代码行数:70,代码来源:AlfrescoSolrHighlighter.java

示例12: getMoreLikeThese

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
NamedList<DocList> getMoreLikeThese(ResponseBuilder rb,
    SolrIndexSearcher searcher, DocList docs, int flags) throws IOException {
  SolrParams p = rb.req.getParams();
  IndexSchema schema = searcher.getSchema();
  MoreLikeThisHandler.MoreLikeThisHelper mltHelper = new MoreLikeThisHandler.MoreLikeThisHelper(
      p, searcher);
  NamedList<DocList> mlt = new SimpleOrderedMap<DocList>();
  DocIterator iterator = docs.iterator();
  
  SimpleOrderedMap<Object> dbg = null;
  if (rb.isDebug()) {
    dbg = new SimpleOrderedMap<Object>();
  }
  
  while (iterator.hasNext()) {
    int id = iterator.nextDoc();
    int rows = p.getInt(MoreLikeThisParams.DOC_COUNT, 5);
    DocListAndSet sim = mltHelper.getMoreLikeThis(id, 0, rows, null, null,
        flags);
    String name = schema.printableUniqueKey(searcher.doc(id));
    mlt.add(name, sim.docList);
    
    if (dbg != null) {
      SimpleOrderedMap<Object> docDbg = new SimpleOrderedMap<Object>();
      docDbg.add("rawMLTQuery", mltHelper.getRawMLTQuery().toString());
      docDbg
          .add("boostedMLTQuery", mltHelper.getBoostedMLTQuery().toString());
      docDbg.add("realMLTQuery", mltHelper.getRealMLTQuery().toString());
      SimpleOrderedMap<Object> explains = new SimpleOrderedMap<Object>();
      DocIterator mltIte = sim.docList.iterator();
      while (mltIte.hasNext()) {
        int mltid = mltIte.nextDoc();
        String key = schema.printableUniqueKey(searcher.doc(mltid));
        explains.add(key,
            searcher.explain(mltHelper.getRealMLTQuery(), mltid));
      }
      docDbg.add("explain", explains);
      dbg.add(name, docDbg);
    }
  }
  
  // add debug information
  if (dbg != null) {
    rb.addDebugInfo("moreLikeThis", dbg);
  }
  return mlt;
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:48,代码来源:MoreLikeThisComponent.java

示例13: doHighlighting

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates a list of Highlighted query fragments for each item in a list
 * of documents, or returns null if highlighting is disabled.
 *
 * @param docs query results
 * @param query the query
 * @param req the current request
 * @param defaultFields default list of fields to summarize
 *
 * @return NamedList containing a NamedList for each document, which in 
 * turns contains sets (field, summary) pairs.
 */
@Override
@SuppressWarnings("unchecked")
public NamedList<Object> doHighlighting(DocList docs, Query query, SolrQueryRequest req, String[] defaultFields) throws IOException {
  SolrParams params = req.getParams(); 
  if (!isHighlightingEnabled(params))
      return null;
   
  SolrIndexSearcher searcher = req.getSearcher();
  IndexSchema schema = searcher.getSchema();
  NamedList fragments = new SimpleOrderedMap();
  String[] fieldNames = getHighlightFields(query, req, defaultFields);
  Set<String> fset = new HashSet<String>();
   
  {
    // pre-fetch documents using the Searcher's doc cache
    for(String f : fieldNames) { fset.add(f); }
    // fetch unique key if one exists.
    SchemaField keyField = schema.getUniqueKeyField();
    if(null != keyField)
      fset.add(keyField.getName());  
  }

  // get FastVectorHighlighter instance out of the processing loop
  FastVectorHighlighter fvh = new FastVectorHighlighter(
      // FVH cannot process hl.usePhraseHighlighter parameter per-field basis
      params.getBool( HighlightParams.USE_PHRASE_HIGHLIGHTER, true ),
      // FVH cannot process hl.requireFieldMatch parameter per-field basis
      params.getBool( HighlightParams.FIELD_MATCH, false ) );
  fvh.setPhraseLimit(params.getInt(HighlightParams.PHRASE_LIMIT, Integer.MAX_VALUE));
  FieldQuery fieldQuery = fvh.getFieldQuery( query, searcher.getIndexReader() );

  // Highlight each document
  DocIterator iterator = docs.iterator();
  for (int i = 0; i < docs.size(); i++) {
    int docId = iterator.nextDoc();
    Document doc = searcher.doc(docId, fset);
    NamedList docSummaries = new SimpleOrderedMap();
    for (String fieldName : fieldNames) {
      fieldName = fieldName.trim();
      if( useFastVectorHighlighter( params, schema, fieldName ) )
        doHighlightingByFastVectorHighlighter( fvh, fieldQuery, req, docSummaries, docId, doc, fieldName );
      else
        doHighlightingByHighlighter( query, req, docSummaries, docId, doc, fieldName );
    }
    String printId = schema.printableUniqueKey(doc);
    fragments.add(printId == null ? null : printId, docSummaries);
  }
  return fragments;
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:62,代码来源:DefaultSolrHighlighter.java

示例14: doHighlighting

import org.apache.solr.search.DocIterator; //导入方法依赖的package包/类
/**
 * Generates a list of Highlighted query fragments for each item in a list
 * of documents, or returns null if highlighting is disabled.
 *
 * @param docs query results
 * @param query the query
 * @param req the current request
 * @param defaultFields default list of fields to summarize
 *
 * @return NamedList containing a NamedList for each document, which in 
 * turns contains sets (field, summary) pairs.
 */
@Override
@SuppressWarnings("unchecked")
public NamedList<Object> doHighlighting(DocList docs, Query query, SolrQueryRequest req, String[] defaultFields) throws IOException {
  SolrParams params = req.getParams(); 
  if (!isHighlightingEnabled(params))
      return null;
   
  SolrIndexSearcher searcher = req.getSearcher();
  IndexSchema schema = searcher.getSchema();
  NamedList fragments = new SimpleOrderedMap();
  String[] fieldNames = getHighlightFields(query, req, defaultFields);
  Set<String> fset = new HashSet<String>();
   
  {
    // pre-fetch documents using the Searcher's doc cache
    for(String f : fieldNames) { fset.add(f); }
    // fetch unique key if one exists.
    SchemaField keyField = schema.getUniqueKeyField();
    if(null != keyField)
      fset.add(keyField.getName());  
  }

  // get FastVectorHighlighter instance out of the processing loop
  FastVectorHighlighter fvh = new FastVectorHighlighter(
      // FVH cannot process hl.usePhraseHighlighter parameter per-field basis
      params.getBool( HighlightParams.USE_PHRASE_HIGHLIGHTER, true ),
      // FVH cannot process hl.requireFieldMatch parameter per-field basis
      params.getBool( HighlightParams.FIELD_MATCH, false ) );
  fvh.setPhraseLimit(params.getInt(HighlightParams.PHRASE_LIMIT, SolrHighlighter.DEFAULT_PHRASE_LIMIT));
  FieldQuery fieldQuery = fvh.getFieldQuery( query, searcher.getIndexReader() );

  // Highlight each document
  DocIterator iterator = docs.iterator();
  for (int i = 0; i < docs.size(); i++) {
    int docId = iterator.nextDoc();
    Document doc = searcher.doc(docId, fset);
    NamedList docSummaries = new SimpleOrderedMap();
    for (String fieldName : fieldNames) {
      fieldName = fieldName.trim();
      if( useFastVectorHighlighter( params, schema, fieldName ) )
        doHighlightingByFastVectorHighlighter( fvh, fieldQuery, req, docSummaries, docId, doc, fieldName );
      else
        doHighlightingByHighlighter( query, req, docSummaries, docId, doc, fieldName );
    }
    String printId = schema.printableUniqueKey(doc);
    fragments.add(printId == null ? null : printId, docSummaries);
  }
  return fragments;
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:62,代码来源:DefaultSolrHighlighter.java


注:本文中的org.apache.solr.search.DocIterator.nextDoc方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。