夫天地者,万物之逆旅;光阴者,百代之过客。而浮生若梦,为欢几何?
lucene.net 如何读取所有索引项(Field)和词项(Term)

            //创建索引读取
            IndexReader m_IndexReader = DirectoryReader.Open(FSDirectory.Open(ConfigInfo.IndexDir));

            //获取所有的FieldName
            ICollection<string> m_IndexFields = MultiFields.GetIndexedFields(m_IndexReader);

            //获取Field
            Fields m_Fields = MultiFields.GetFields(m_IndexReader);

            //创建索引搜索
            IndexSearcher m_IndexSearcher = new IndexSearcher(m_IndexReader);
 
            foreach (string t_IndexField in m_IndexFields)
            {
                //获取文档索引信息
                CollectionStatistics m_CollectionStatistics = m_IndexSearcher.CollectionStatistics(t_IndexField);

                Console.WriteLine($"KeyWord:{t_IndexField},有{m_CollectionStatistics.DocCount}个文档");

                //获取Field下的关键词
                Terms m_Terms = m_Fields.GetTerms(t_IndexField);

                //获取关键词枚举
                TermsEnum m_TermsEnum = m_Terms.GetIterator(null);

                BytesRef m_BytesRef = null;

                //循环获取关键词
                while ((m_BytesRef = m_TermsEnum.Next()) != null)
                {
                    //转换成value
                    string t_Value = System.Text.Encoding.Default.GetString(m_BytesRef.Bytes, m_BytesRef.Offset, m_BytesRef.Length);
                    Console.WriteLine(t_Value);
                }

            }


作者:涛哥

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

0

支持

0

反对

posted @2018-3-6  拜读(1407)

评论列表

评论内容:



喜欢请打赏

支付宝 微信

请放心支付