lucene.net逻辑存储结构

  词在倒排索引中是最小的单位,在Lucene.Net中衡量单位是Term,由N个Term构成了Filed,而又有N个Filed组成了Document,N个Document又会组成一个Segment,N个Segment会被写到Lucene.Net的文件系统。文件系统留到后面再讲,因为Lucene.Net自己实现了自己的文件系统,而这个系统的最小单位由3个文件组成,可以放到一个目录下,也可以放到内存中。总的来说Lucene.Net的文件系统可以理解为一个个的文件,在Windows下就是一个目录,里面包含了三个文件,但是从Lucene.Net的逻辑上来说,这就是一个文件。然后文件里的文本分词N个章节,那就是Segment,每个段落又会有N个段落(Document),段落里的每句话就是Filed,而Term就是每个字。和我们处理习惯很像不是吗?而其中最重要的就是Term,其他都是为它排版用的。

  而这个索引相对于分词,也可以用另外一个类来衡量,那就是——Token,是不是很熟悉?Term和Token的文本是一样的,只是记录的关于这个文本的属性不一样。

  前面写到了两次写入索引的操作,代码大同小异。都是先建立一个分词器,然后把分词器交给IndexWriter。接着创建N个Document,往Docuemnt里填充Field,再把Document交给IndexWriter操作,就完成了整个索引过程。关于Segment的处理被黑箱子掉了,而Term的处理也仅仅能从分词器看到个大概。

posted @   潇潇息一去不复返  阅读(478)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
努力才能前进,勤耕博客才能看远
点击右上角即可分享
微信分享提示