posts - 145,comments - 23,views - 73万

在搜索文档内容之前要做的事情就是对从各种不同来源(网页,数据库,电子邮件等)的文档进行索引,索引的过程就是对内容进行提取,规范化(通过对内容进行建模来实现),然后存储。

在索引的过程中有几个基本的概念,根据我自己的理解大概写一下:

文档(Document):

文档在索引和搜索的时候都会用到,是索引和搜索的基本单位(类似于关系数据库关系表中的记录),若我们对网页内容进行索引和搜索,则从互联网上爬下来的每一个网页最终都会经过分析,提取出其中有意义的部分(比如网页标题,URL,包含的关键字,发布日期等),形成一个个的文档存储起来,在搜索的时候0根据这些内容进行匹配,找到的也是一个个匹配的文档,然后再从文档中找出需要的内容,进行还原

域(Field):

域是文档中真正用来匹配的东西,文档是由一个或者多个域构成的(可以类别关系表中的字段,一条记录由多个字段构成,每个字段都有其类型和对应的值,Lucene中文档是由域构成,每个域都有其名称、类型和值)。关于Lucene中的域选项可以参考之前我写的这篇文章:Lucene中的域选项

分析器(Analyzer)/词元(Term):

分析器同样是在索引和搜索的时候都需要用到,分析器是把原始文档(或者用户输入)解析成一个个的词语(称为词元),Lucene的索引就是一种倒排索引的结构,存储的是从词元到文档的映射。原始文档通过分析器转换成词元然后将词元和文档的映射关系存储为索引,用户搜索时分析器将用户的输入转换为词元然后到索引中去查找匹配的文档

 

Lucene的索引过程主要分为三个步骤:

1.将从各种方式得到的文档转换成文本

2.用分析器分析文本

3.将分析好的文本保存至索引

下边的一张图是我从网上找的,很好滴说明了Lucene的索引过程(还有搜索的过程)

 

 

 

 

 

 

 

 

 

posted on   梦中彩虹  阅读(736)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示