CN102819592A - 一种基于Lucene的桌面搜索***及方法 - Google Patents
一种基于Lucene的桌面搜索***及方法 Download PDFInfo
- Publication number
- CN102819592A CN102819592A CN2012102801664A CN201210280166A CN102819592A CN 102819592 A CN102819592 A CN 102819592A CN 2012102801664 A CN2012102801664 A CN 2012102801664A CN 201210280166 A CN201210280166 A CN 201210280166A CN 102819592 A CN102819592 A CN 102819592A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- text
- lucene
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于Lucene的桌面搜索***及方法,所述***在Lucene的基础上扩充了中文处理和文本分析功能,包括四个模块:索引文件构建模块、索引文件实时更新模块、索引文件定时更新模块和用户交互模块。方法包括以下步骤:扫描存储在本地磁盘上包含文本信息的文件,提取文件的名称、路径、内容等关键信息,建立倒排索引;监控对文件删除与修改等操作,更新索引,确保文件和索引信息一致;接收用户的查询请求,读取查询请求对应的索引,并进行相似度计算,将查询结果由高到低排列返回给用户,帮助用户快速而准确的定位所需信息。本发明实时性好、占用资源少,拥有较高的查全率和查准率。
Description
技术领域
本发明涉及一种基于Lucene的桌面搜索***及方法,属于信息技术处理领域。
背景技术
信息***的时代,硬盘容量不断增大,本地文件***目录结构越来越复杂,文件数量越来越庞大,对文件快速搜索的需要也越来越迫切,桌面搜索应运而生。桌面搜索,是一种个人计算机上存储的信息进行索引、查找的检索工具,面向个人文档管理,在个人信息管理领域中受到用户的欢迎。
目前较为成熟的桌面搜索引擎有Google Desktop Search、百度硬盘搜索、网络猪、微软桌面搜索等商用免费软件,其功能较为强大,但是建立索引需要时间长,更新索引速度慢,索引实时性不高,硬盘等***资源占用率高。另外由于商业利益存在,桌面搜索***涉及用户本地磁盘文件,用户安全性和可扩展性受到限制,从用户体验、索引实时性和***资源占用率上来说,都有很大的欠缺。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种实时性好、占用资源少的基于Lucene的桌面搜索***及方法。
技术方案:一种基于Lucene的桌面搜索***,所述***在Lucene的基础上扩充了中文处理和文本分析功能,包括四个模块:
索引文件构建模块,用于***第一次启动时为存储在磁盘上包含文本信息的文件建立倒排索引;
索引文件实时更新模块,用于实现对文件删除与修改等操作监控与索引更新,确保文件与索引信息一致;
索引文件定时更新模块,用于当***停止运行时间达到规定值时重新扫描磁盘上包含文本信息的文件,更新索引文件;
用户交互模块,用于接收用户的查询请求,并进行相似度计算,将查询结果由高到低排列返回给用户。
一种基于Lucene的桌面搜索方法,包括以下步骤:
步骤1,若***在计算机上第一次启动,则进入步骤2,否则进入步骤4;
步骤2,扫描本地磁盘的所有文件,根据文件扩展名识别出word、pdf、html等各种包含文本信息的文件,提取文本和元数据;
步骤3,为文本文件建立倒排索引和索引文件列表,所述索引文件列表记录文本文件的路径和修改时间;进入步骤5;
步骤4,查看***停止运行时间,更新索引和索引文件列表。具体包括以下步骤:
步骤4-1,判断***停止运行时间是否达到规定值:
若停止运行时间已经达到规定值,进入步骤4-2;
若停止运行时间没有达到规定值,进入步骤4-3;
步骤4-2,重新扫描存储在磁盘上包含文本信息的文件,获取文本文件后,与索引文件列表相比较,分析文件在***停止运行期间发生的变化;
步骤4-3,实时监听***文件变化,包括:文件创建、文件修改、文件删除和文件重命名;
步骤4-4,获取文件变化后,更新索引和索引文件列表中相应的信息,确保文件和索引信息一致;
步骤5,接受用户的查询请求,允许用户指定要查找的文件类型和文件修改时间的范围;
步骤6,获得用户的查询请求后,将查询请求按照词典分词进行切分处理,读取经切分处理后的词对应的倒排索引信息,利用索引计算查询与文件的相似度,将查询结果由高到低排列返回给用户。
所述步骤2分析包含文本信息的文件时,实现Lucene的解析文本的接口,通过配置文件,使用不同的解析器处理不同格式的文本以提取文本和元数据。
所述步骤2分析包含文本信息的文件时,使用IKAnalyzer分词器处理中文,结合词典分词和文法分析算法拆分文本信息。
所述步骤4-2获取文本文件后,与索引文件列表相比较,为不在索引文件列表中的文本文件创建索引,更新修改时间在索引文件列表中记录的时间之后的文本文件的索引信息,删除索引文件列表中存在但磁盘上不存在的文本文件的索引信息。
本发明与现有技术相比,具有的有益效果是:
本发明是一种基于Lucene的桌面搜索***及方法,索引文件格式独立于应用平台,在传统全文检索引擎的倒排索引的基础上实现了分块索引,提升索引速度。在Lucene的面向对象的***架构上,方便扩充新功能,便于后续的维护和升级。本发明的两种索引文件更新方法用于获取***文件变化,确保文件和索引信息的一致,拥有较高的查全率和查准率。
附图说明
图1为本发明实施例的***框图;
图2为本发明实施例的方法流程图;
图3为本发明实施例中基于Lucene的桌面搜索方法构建索引的流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
设计桌面搜索的基本思路是提取本地文件的关键信息,建立和维护一个索引文件的集合,在索引文件中对用户输入的关键字进行匹配,并定位到相应的文件。倒排索引由属性值来确定记录的位置,能够实现文件的快速查找。桌面搜索的核心就在于建立和维护索引文件以及进行查询操作。
如图1所示,基于Lucene的桌面搜素***包括以下四个模块:
索引文件构建模块,用于***第一次启动时为存储在磁盘上包含文本信息的文件建立倒排索引;
索引文件实时更新模块,用于实现对文件删除与修改等操作监控与索引更新,确保文件与索引信息一致;
索引文件定时更新模块,用于当***停止运行时间达到规定值时重新扫描磁盘上包含文本信息的文件,更新索引文件;
用户交互模块,用于接收用户的查询请求,并进行相似度计算,将查询结果由高到低排列返回给用户。
按照如图2所示的流程图,基于Lucene的桌面搜索方法,包括以下步骤:
步骤1,如果***在计算机上第一次启动,则进入步骤2,否则进入步骤3。
步骤2,扫描本地磁盘的所有文件,根据文件扩展名识别出word、pdf、html等各种包含文本信息的文件,提取文本和元数据,为文本文件建立倒排索引和索引文件列表。索引文件列表记录文本文件的路径和修改时间。如图3所示,为基于Lucene的桌面搜索方法为文本文件构建索引的详细流程:
步骤2-1,扫描存储在本地磁盘的文件,根据文件扩展名筛选出word、pdf、html等各种包含文本信息的文件;
步骤2-2,根据文件类型,通过配置文件,调用不同类型的文档解析器对相应的文档进行解析,以提取文本和元数据;
步骤2-3,使用IKAnalyzer分词器处理得到的文本,结合词典分词和文法分析算法拆分文本信息;
步骤2-4,对文本切分出的关键词,相应地保存该关键词所在文件的文件标示符,在每个文件中出现的次数(词频)、位置等信息,即获得每个关键词对应的全文索引信息。采用倒排索引保存每个关键词的全文索引。关键词表中的每个词对应一个倒排索引链表,链表包含了该关键词所在文件的文件标示符、词频、出现位置等信息,将文本文件的路径和修改时间写入索引文件列表;
步骤2-5,对于倒排索引链表采用压缩方法保存。倒排索引链通过可变字节编码的方式对索引文件的整型数据进行压缩,首先根据文件标示符排序,然后将文件标识符转换为相邻文件标识符的差值,即采用小整数保存文件标识符,然后对倒排索引进行压缩。
步骤3,查看***停止运行时间,更新索引文件。具体包括以下步骤:
步骤3-1,判断***停止运行时间是否达到规定值;
若停止运行时间已经达到规定值,进入步骤3-2;
若停止运行时间没有达到规定值,进入步骤3-3;
步骤3-2,重新扫描存储在磁盘上包含文本信息的文件,获取文本文件后,与索引文件列表相比较,分析文件在***停止运行期间发生的变化。文本文件不在索引文件列表中,说明该文件在***停止运行期间创建的;若文件的修改时间晚于索引文件列表中记录的时间,说明该文件在***停止运行期间修改过;若文件存在于索引文件列表中但不在磁盘中,说明该文件在***停止运行期间已经删除;
步骤3-3,实时监听***文件变化事件,包括:文件创建、文件修改、文件删除和文件重命名;
步骤3-4,获取文件变化事件后,更新索引文件和索引文件列表中相应的信息,确保文件和索引信息一致。针对创建文件事件,将文档添加到原有的索引文件中时,生成增量索引,仅分析新出现的文件并建立倒排索引,周期性地与其他现有索引合并,避免重建索引。针对文件删除事件,将文件对应的索引信息标记为“删除”,在发生段合并操作时回收磁盘空间。
步骤4,通过可视化界面接受用户的查询请求。搜索请求允许用户输入关键词序列,指定要搜索的文件类型及文件修改日期。
步骤 5,获得用户的查询请求后,采用分析算法优化查询关键字的搜索排列组合。读取该关键词对应的索引信息,计算查询请求与文件之间的相似度。计算方式为查询语句(q)中每个关键词(t)与文档(d)的匹配分值之和。计算公式如下:
其中tf(t in d)表示t的词频,即关键词t在文档d中出现的频率。idf(t)表示t在倒排索引中出现的频率。boost(t.filed in d)表示查询时期的t 加权,默认值是1.0。lengthNorm(t.field in d)表示关键词t在文档d中所占的比重,在这里d中的关键词越少,代表t越重要。coord(q,d)表示q中有多少个特征词在文档d中出现。queryNorm(q)表示q中每个特征词权值之和。
根据上面公式计算出所有文档的评分,然后将评分进行归一化处理,即用该条查询对应的评分除以最大评分,最后将结果由高到低以列表的方式返回给用户,最上面的文档是最匹配的。
可见,本发明能够为存储在本地磁盘上的包含文本信息的文件快速创建倒排索引,对文件删除与修改等操作的监控与索引更新,确保文件和索引信息一致,接收用户的查询请求,读取查询请求对应的索引,并进行相似度计算,将查询结果由高到低排列返回给用户,帮助用户快速而准确的定位所需信息。
Claims (5)
1.一种基于Lucene的桌面搜索***,其特征在于:所述***在Lucene的基础上扩充了中文处理和文本分析功能,包括四个模块:
索引文件构建模块,用于***第一次启动时为存储在磁盘上包含文本信息的文件建立倒排索引;
索引文件实时更新模块,用于实现对文件删除与修改操作监控与索引更新,确保文件与索引信息一致;
索引文件定时更新模块,用于当***停止运行时间达到规定值时重新扫描磁盘上包含文本信息的文件,更新索引文件;
用户交互模块,用于接收用户的查询请求,并进行相似度计算,将查询结果由高到低排列返回给用户。
2.一种基于Lucene的桌面搜索方法,其特征在于,包括以下步骤:
步骤1,若***在计算机上第一次启动,则进入步骤2,否则进入步骤4;
步骤2,扫描本地磁盘的所有文件,根据文件扩展名识别出各种包含文本信息的文件,提取文本和元数据;
步骤3,为文本文件建立倒排索引和索引文件列表,所述索引文件列表记录文本文件的路径和修改时间;进入步骤5;
步骤4,查看***停止运行时间,更新索引和索引文件列表,具体包括以下步骤:
步骤4-1,判断***停止运行时间是否达到规定值:
若停止运行时间已经达到规定值,进入步骤4-2;
若停止运行时间没有达到规定值,进入步骤4-3;
步骤4-2,重新扫描存储在磁盘上包含文本信息的文件,获取文本文件后,与索引文件列表相比较,分析文件在***停止运行期间发生的变化;
步骤4-3,实时监听***文件变化,包括:文件创建、文件修改、文件删除和文件重命名;
步骤4-4,获取文件变化后,更新索引和索引文件列表中相应的信息,确保文件和索引信息一致;
步骤5,接受用户的查询请求,允许用户指定要查找的文件类型和文件修改时间的范围;
步骤6,获得用户的查询请求后,将查询请求按照词典分词进行切分处理,读取经切分处理后的词对应的倒排索引信息,利用索引计算查询与文件的相似度,将查询结果由高到低排列返回给用户。
3.如权利要求2所述的基于Lucene的桌面搜索方法,其特征在于:所述步骤2分析包含文本信息的文件时,实现Lucene的解析文本的接口,通过配置文件,使用不同的解析器处理不同格式的文本以提取文本和元数据。
4.如权利要求2所述的基于Lucene的桌面搜索方法,其特征在于:所述步骤2分析包含文本信息的文件时,使用IKAnalyzer分词器处理中文,结合词典分词和文法分析算法拆分文本信息。
5.如权利要求2所述的基于Lucene的桌面搜索方法,其特征在于:所述步骤4-2获取文本文件后,与索引文件列表相比较,为不在索引文件列表中的文本文件创建索引,更新修改时间在索引文件列表中记录的时间之后的文本文件的索引信息,删除索引文件列表中存在但磁盘上不存在的文本文件的索引信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210280166.4A CN102819592B (zh) | 2012-08-08 | 2012-08-08 | 一种基于Lucene的桌面搜索***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210280166.4A CN102819592B (zh) | 2012-08-08 | 2012-08-08 | 一种基于Lucene的桌面搜索***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819592A true CN102819592A (zh) | 2012-12-12 |
CN102819592B CN102819592B (zh) | 2015-06-03 |
Family
ID=47303703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210280166.4A Active CN102819592B (zh) | 2012-08-08 | 2012-08-08 | 一种基于Lucene的桌面搜索***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819592B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198108A (zh) * | 2013-03-27 | 2013-07-10 | 新浪网技术(中国)有限公司 | 一种索引数据更新方法、检索服务器及*** |
CN103823902A (zh) * | 2014-03-18 | 2014-05-28 | 南京新模式软件集成有限公司 | 一种电子文件安全检索的方法 |
CN105069101A (zh) * | 2015-08-07 | 2015-11-18 | 桂林电子科技大学 | 分布式索引构建及检索方法 |
CN105404661A (zh) * | 2015-11-05 | 2016-03-16 | 浪潮(北京)电子信息产业有限公司 | 一种更新索引文件的方法及*** |
CN105512339A (zh) * | 2015-12-31 | 2016-04-20 | 深圳市朗科科技股份有限公司 | 一种文件检索器及检索方法 |
CN106021390A (zh) * | 2016-05-12 | 2016-10-12 | 福建南威软件有限公司 | 一种文件的管理方法和装置 |
CN106055546A (zh) * | 2015-10-08 | 2016-10-26 | 北京慧存数据科技有限公司 | 基于Lucene的光盘库全文检索*** |
CN111309683A (zh) * | 2020-02-07 | 2020-06-19 | 北京明朝万达科技股份有限公司 | 扫描全盘数据的方法及装置 |
CN112506859A (zh) * | 2020-08-21 | 2021-03-16 | 海信视像科技股份有限公司 | 一种维护硬盘数据的方法及显示设备 |
CN113535642A (zh) * | 2021-08-05 | 2021-10-22 | 统信软件技术有限公司 | 一种文件搜索方法及计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924854A (zh) * | 2006-09-18 | 2007-03-07 | 浙江大学 | 智能移动终端的桌面搜索方法 |
US7617197B2 (en) * | 2005-08-19 | 2009-11-10 | Google Inc. | Combined title prefix and full-word content searching |
CN101887417A (zh) * | 2009-05-13 | 2010-11-17 | 上海即略网络信息科技有限公司 | 一种搜索方法 |
CN102508857A (zh) * | 2011-09-29 | 2012-06-20 | 暨南大学 | 一种基于事件关联的桌面云搜索方法 |
CN102609502A (zh) * | 2012-02-02 | 2012-07-25 | 深圳市中兴移动通信有限公司 | 基于日志方式的移动终端桌面搜索方法及*** |
-
2012
- 2012-08-08 CN CN201210280166.4A patent/CN102819592B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617197B2 (en) * | 2005-08-19 | 2009-11-10 | Google Inc. | Combined title prefix and full-word content searching |
CN1924854A (zh) * | 2006-09-18 | 2007-03-07 | 浙江大学 | 智能移动终端的桌面搜索方法 |
CN101887417A (zh) * | 2009-05-13 | 2010-11-17 | 上海即略网络信息科技有限公司 | 一种搜索方法 |
CN102508857A (zh) * | 2011-09-29 | 2012-06-20 | 暨南大学 | 一种基于事件关联的桌面云搜索方法 |
CN102609502A (zh) * | 2012-02-02 | 2012-07-25 | 深圳市中兴移动通信有限公司 | 基于日志方式的移动终端桌面搜索方法及*** |
Non-Patent Citations (1)
Title |
---|
聂妮等: "lucene 桌面中文搜索引擎设计思路", 《科技风》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198108B (zh) * | 2013-03-27 | 2016-08-10 | 新浪网技术(中国)有限公司 | 一种索引数据更新方法、检索服务器及*** |
CN103198108A (zh) * | 2013-03-27 | 2013-07-10 | 新浪网技术(中国)有限公司 | 一种索引数据更新方法、检索服务器及*** |
CN103823902A (zh) * | 2014-03-18 | 2014-05-28 | 南京新模式软件集成有限公司 | 一种电子文件安全检索的方法 |
CN105069101A (zh) * | 2015-08-07 | 2015-11-18 | 桂林电子科技大学 | 分布式索引构建及检索方法 |
CN106055546A (zh) * | 2015-10-08 | 2016-10-26 | 北京慧存数据科技有限公司 | 基于Lucene的光盘库全文检索*** |
CN105404661A (zh) * | 2015-11-05 | 2016-03-16 | 浪潮(北京)电子信息产业有限公司 | 一种更新索引文件的方法及*** |
CN105512339A (zh) * | 2015-12-31 | 2016-04-20 | 深圳市朗科科技股份有限公司 | 一种文件检索器及检索方法 |
CN106021390A (zh) * | 2016-05-12 | 2016-10-12 | 福建南威软件有限公司 | 一种文件的管理方法和装置 |
CN111309683A (zh) * | 2020-02-07 | 2020-06-19 | 北京明朝万达科技股份有限公司 | 扫描全盘数据的方法及装置 |
CN111309683B (zh) * | 2020-02-07 | 2023-04-14 | 北京明朝万达科技股份有限公司 | 扫描全盘数据的方法及装置 |
CN112506859A (zh) * | 2020-08-21 | 2021-03-16 | 海信视像科技股份有限公司 | 一种维护硬盘数据的方法及显示设备 |
CN112506859B (zh) * | 2020-08-21 | 2023-02-28 | 海信视像科技股份有限公司 | 一种维护硬盘数据的方法及显示设备 |
CN113535642A (zh) * | 2021-08-05 | 2021-10-22 | 统信软件技术有限公司 | 一种文件搜索方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102819592B (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819592B (zh) | 一种基于Lucene的桌面搜索***及方法 | |
US9251157B2 (en) | Enterprise node rank engine | |
US10346257B2 (en) | Method and device for deduplicating web page | |
CN108304444B (zh) | 信息查询方法及装置 | |
CN102054022B (zh) | 用于处理并管理与对象相关的数据以供多个应用程序使用的***及方法 | |
US8903798B2 (en) | Real-time annotation and enrichment of captured video | |
US20170139928A1 (en) | Query Conversion for Converting Structured Queries into Unstructured Queries for Searching Unstructured Data | |
US20140258283A1 (en) | Computing device and file searching method using the computing device | |
US10360258B2 (en) | Image annotation using aggregated page information from active and inactive indices | |
US11669576B2 (en) | System, method and computer program product for protecting derived metadata when updating records within a search engine | |
US10078672B2 (en) | Search device, search method, and computer program product | |
KR20130049111A (ko) | 분산 처리를 이용한 포렌식 인덱스 방법 및 장치 | |
CN101996195A (zh) | 音频文件中语音信息的搜索方法、装置及设备 | |
US20130191414A1 (en) | Method and apparatus for performing a data search on multiple user devices | |
CN107085583B (zh) | 一种基于内容的电子文档管理方法及装置 | |
CN107844493B (zh) | 一种文件关联方法及*** | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
JP2009031931A (ja) | 検索語クラスタリング装置、検索語クラスタリング方法、検索語クラスタリングプログラム及び記録媒体 | |
JP5926321B2 (ja) | 大容量データを処理するための、sqlパーシングによる2レベルクエリー及び結果キャッシングを用いたオンライン分析プロセッシング方法 | |
RU2595523C2 (ru) | Способ обработки изображения, способ создания индекса изображения, способ обнаружения соответствия изображению из хранилища изображений и сервер (варианты) | |
Ilic et al. | Inverted index search in data mining | |
US10019483B2 (en) | Search system and search method | |
KR101880474B1 (ko) | 고부가 가치화 콘텐츠 정보서비스를 위한 키워드 기반 서비스 제공 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램 | |
CN103745004B (zh) | 一种基于云计算的桌面搜索方法、云服务器及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |