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


C# Iterator.DocID方法代码示例

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


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

示例1: Build

            /// <summary>
            /// Build the <seealso cref="PForDeltaDocIdSet"/> instance. </summary>
            public virtual PForDeltaDocIdSet Build()
            {
                Debug.Assert(BufferSize < BLOCK_SIZE);

                if (Cardinality == 0)
                {
                    Debug.Assert(PreviousDoc == -1);
                    return EMPTY;
                }

                EncodeBlock();
                sbyte[] dataArr = Arrays.CopyOf(Data.Bytes, Data.Length + MAX_BYTE_BLOCK_COUNT);

                int indexSize = (NumBlocks - 1) / IndexInterval_Renamed + 1;
                MonotonicAppendingLongBuffer docIDs, offsets;
                if (indexSize <= 1)
                {
                    docIDs = offsets = SINGLE_ZERO_BUFFER;
                }
                else
                {
                    const int pageSize = 128;
                    int initialPageCount = (indexSize + pageSize - 1) / pageSize;
                    docIDs = new MonotonicAppendingLongBuffer(initialPageCount, pageSize, PackedInts.COMPACT);
                    offsets = new MonotonicAppendingLongBuffer(initialPageCount, pageSize, PackedInts.COMPACT);
                    // Now build the index
                    Iterator it = new Iterator(dataArr, Cardinality, int.MaxValue, SINGLE_ZERO_BUFFER, SINGLE_ZERO_BUFFER);
                    for (int k = 0; k < indexSize; ++k)
                    {
                        docIDs.Add(it.DocID() + 1);
                        offsets.Add(it.Offset);
                        for (int i = 0; i < IndexInterval_Renamed; ++i)
                        {
                            it.SkipBlock();
                            if (it.DocID() == DocIdSetIterator.NO_MORE_DOCS)
                            {
                                goto indexBreak;
                            }
                        }
                    indexContinue: ;
                    }
                indexBreak:
                    docIDs.Freeze();
                    offsets.Freeze();
                }

                return new PForDeltaDocIdSet(dataArr, Cardinality, IndexInterval_Renamed, docIDs, offsets);
            }
开发者ID:joyanta,项目名称:lucene.net,代码行数:50,代码来源:PForDeltaDocIdSet.cs


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