Lucene.net搜索——初识lucene
Lucene.net是什么??
Lucene是一个开源的全文检索工具包,使用java实现。从2000年开始,Doug Cutting把lucene放到SourceForge上供人随意下载,到了2001年,Apache自由软件联盟将其收入,成为他的一个子项目。
Lucene.net是lucene的.net版本,为.net开发人员提供API。Lucene.net 起初是一个开源项目然后转向商业化,我们可以在网上找到早些的版本,是开源免费的,已经可以满足大部分的搜索需求。
Lucene.net能做什么?
lucene可以搭建搜索引擎,但要做成一个baidu、google是不太现实的,但是作为一个开源的、高效的、可扩展的全文索引API,在日常的开发中也是常常需要用到的。
Lucene.net是基于文本的搜索,与基于数据的搜索有很大的不同,更加灵活高效。我们先看下在博客园找找看中搜索“lucene”产生的结果(http://zzk.cnblogs.com/s?w=lucene&t=),下面是截图
很容易发现这样的搜索相对而言是相对准确的,前几页的内容和我们搜索的关键字联系比较紧密,到20页以后我们就发现基本不是我们想找的内容。这样的搜索结果好像有点baidu和google的影子了。
(1)lucene.net的搜索结果更精确。数据库的搜索结果只能根据某几个字段来排序,但我们无法按我们搜索结果的匹配度来排序。lucene.net内部有自己的排序规则,有自己的匹配度算法,lucene.net就能解决这一的问题。
(2)lucene.net的搜索速度更快。基于文件的搜索,减少数据库的压力。lucene.net也有自己的缓存和优化方式。
(3)使用简单.
Lucene.net如何做??
其实Lucene.net的工作流程很简单,三个步骤:
(1)建立索引
(2)搜索
(3)输出结果
lucene.net实际上是把你要搜索的内容(word/数据库/pdf)等内容建立成索引,存储到索引的文件夹,然后所有的搜索都是针对该文件夹的相关内容进行操作,我们不需要生成索引的具体内容是什么,我只需要知道怎么使用这些所以即可。
那么具体是怎么来操作呢?现在做个Demo演示。
新建一个站点,添加BIN目录和应用lucene的DLL,新建文件夹indexdir,用来存放索引文件。
建立索引

2

3

4

5

6

7

8

9

10

11

12

13


2

3

4

5

6

7

8

9

10

11

12

13

建立完索引后会发现索引的文件夹多几个文件,这几个文件的作用以后会讲述,这里我们只要知道索引已经建立就可以了
进行搜索

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

这只是一个最简单的Demo,下篇将详细介绍建立索引
附上源码 https://files.cnblogs.com/joylee/lucenedemo1.rar
Lucene学习资源:
Lucene.net下载:http://www.cnblogs.com/birdshover/archive/2008/08/26/1277019.html
Birdshover的BLOG http://www.cnblogs.com/birdshover/category/152283.html
作者:joylee
出处:https://www.cnblogs.com/joylee/archive/2009/11/25/1610757.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?