lucene全文搜索之一:lucene的主要功能和基本结构(基于lucene5.5.3)

前言:lucene并不是像solr或elastic那样提供现成的、直接部署可用的系统,而是一套jar包,提供了一些常见语言分词、构建索引和创建搜索器等等功能的API,我们常用到的也就是分词器、索引目录管理、索引器以及几种搜索器。

这里我们会从lucene结构到实现逐一进行分析讲解

注意:基于lucene5.5.3,(只支持5.x版本,不支持5.x以下和6.x以上的lucene版本

jar包集合下载地址:http://download.csdn.net/detail/eguid_1/9677589

一、lucene的基本结构

lucene 的主要功能索引器索引搜索器构成,所有的外围功能都为构建索引和搜索两个功能提供服务

1、索引器构成

搜索器由分词器索引目录、索引文档构成

lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录)基于lucene5.5.2


(1)分词器构成

内置分词器:Lucene-analyzers-common-5.5.2.jar提供了多国语言的分词器

常用中文分词器:IKAnalyzer和庖丁

使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)

(2)索引目录构成

索引目录分为:文件目录内存虚拟目录

补充:在大量实际应用中百万级别的数据量下文件目录和内存虚拟目录索引在性能上并没有太大差异

(3)索引文档

索引文档由多个索引字段构成,用于保存要索引的字段;

索引字段由字段名和字段内容以及权重值组成。

lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.2

(补充:文章或者其他内容用于构建索引字段,并赋予权重值,再将构建好的索引字段保存到索引文档,就可以用来搜索了,当然我们也可以将索引文档保存到索引目录,这样我们就可以使用搜索器来搜索这个索引目录中的索引文档)

2、索引搜索器构成

索引搜索器由索引目录创建,所以实际上可以把索引保存到不同的索引目录,在搜索时通过不同的索引目录进行分类搜索;
索引搜索器需要搜索器进行搜索结果(可以根据排序或者根据匹配值或权重值对搜索结果进行调整);
部分搜索器需要依赖分词器进行分词。

搜索器分为六种

(1)单词搜索

搜索单个关键字

(2)前缀搜索

按照对应的前缀进行搜索

(3)范围搜索

搜索指定一个范围

(4)语句模糊搜索

使用内置分词器或中文分词器对查询语句进行分词并根据分词结果模糊搜索

(5)条件模糊搜索

在语句模糊查询基础上加上OR或者AND进行条件搜索

补充:只支持OR、AND两种条件搜索

(6)组合搜索

可以组合上面几种搜索器进行混合搜索



下一章:lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录)基于lucene5.5.2


posted @   eguid  阅读(407)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示