介绍Lucene.Net

一、Lucene.Net

  1. 来源:Lucene是Java开发的全文检索库;Lucene.Net是Lucene的.NET平台C#移植版,Apache基金会开源项目,遵循Apache License协议。
  2. 定位不是成品搜索引擎,只是一套全文检索开发组件包,提供查询引擎、索引引擎,需要开发者自己编码实现检索功能;不会自动爬取内容,需要手动提取文本添加到索引。
  3. 开发简要步骤
    1. 初始化分词器Analyzer
    2. 打开IndexWriter索引写入器
    3. 逐个添加文档
    4. 关闭后,索引自动优化,变更生效
  4. 核心原理:索引文件 建立索引时,会生成独立的索引文件,把词语和文章文档做关联。 用户搜索时读取索引文件,不再直接查询数据库。 ✅优点:查询速度快,大幅降低数据库压力 、
  5. 缺点:搜索不是实时。新增文章不会立刻出现在搜索结果,需要手动/定时重建索引。

二、盘古分词

  1. 定位中英文分词组件,支持自定义分词规则,常配合Lucene.Net使用。
  2. 作用:解决Lucene自带词库中文词汇不足的问题。举例:文章标题望向黑色迷墙
    • Lucene自带词库可以识别黑色,搜索“黑色”可以找到这篇文章;
    • 自带词库没有迷墙,直接用Lucene分词时,搜“迷墙”无法匹配文章;
    • 接入盘古分词,就可以识别迷墙这个词,建立索引,用户搜索迷墙就能检索到文章。

总结

Lucene.Net是.NET下做全文检索的核心框架,但自带中文分词能力弱;盘古分词是配套的中文分词插件,用来精准拆分中文词语,提升中文搜索效果

Leave a Reply

Your email address will not be published. Required fields are marked *