因单位很多系统都是用lucene作为搜索引擎,故本人最近也抽出了一点时间看了看lucene特在此做下笔记。
lucene一个开源项目,目前很成功,依本人从网上搜的内容来看,lucene不是一个完整的全文索引应用,而是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
大家可以参考http://www.chedong.com/tech/lucene.html了解更多的东西。
个人理解,lucene是将检索内容处理它自已可以快速检索的特定格式的内容。然后通过lucene,我们能够快速的检索。由此看来luence提供了两大部分重要的API:1,抽取索引,2,检索索引。
那么lucene是怎么从数据中抽取索引,个人觉得luence只是提供了把必要信息组成lucene能够识别的索引文件,对于怎么从源数据中抽索引,lucene没有提供,其实luence也没法提供,因为来源数据太多。下面拿lucene数据库数据结构作个比较:
Lucene |
数据库 |
索引数据源:doc(field1,field2...) doc(field1,field2...)
\ indexer /
_____________
| Lucene Index|
--------------
/ searcher \
结果输出:Hits(doc(field1,field2) doc(field1...))
|
索引数据源:record(field1,field2...) record(field1..)
\ SQL: insert/
_____________
| DB Index |
-------------
/ SQL: select \
结果输出:results(record(field1,field2..) record(fie
|
Document:一个需要进行索引的“单元”,一个Document由多个字段组成 |
Record:记录,包含多个字段 |
Field:字段 |
Field:字段 |
Hits:查询结果集,由匹配的Document组成 |
RecordSet:查询结果集,由多个Record组成 |
通过这个表格应该很清楚看懂lucene的索引与数据库里的索引的结构。
lucene址:http://www.apache.org/dyn/closer.cgi/lucene/java/,这里我下载的是3.0.0的版本,打开压缩包后,里面的scr夹子和lucene-core-3.0.0.jar,lucene-demos-3.0.0.jar,luceneweb.war,src下有一个demo和jsp,是两个lucene的示例的源码,你可以用一些IDE新建一个工程,将demo的源码导进去,要运行的话得将lucene-core-3.0.0.jar加入到classpath中,而luceneweb.war我们直接拷贝到tomcat的webapp下,启动tomcat就行了,然后可以访问luceneweb,当我们输入检索词后,点击搜索按钮后发现报错:
An error occurred at line: 98 in the jsp file: /results.jsp
The constructor QueryParser(String, Analyzer) is undefined
95:
96: Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); //construct our usual analyzer
97: try {
98: QueryParser qp = new QueryParser("contents", analyzer);
99: query = qp.parse(queryString); //parse the
100: } catch (ParseException e) { //query and construct the Query
101: //object
这是因为luceneweb这个web应用用的是lucene早期版本的API写的,所以在这里运行报错。
至于lucene的应用示例,je上很多,大家可以参考下面这篇文章,写的很详细,这里就不多说了。http://www.iteye.com/topic/39597
分享到:
相关推荐
用来测试luence运行的结果是否正确。运行直接使用即可。
lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...
Luence和ElasticSearch面试准备.docx
完整的IKanalyzer2012和luence4.3.0、luence3.6.1的压缩包,内含有IKAnalyzer2012的说明文档
获取全部Luence数据
lucene 原理与分析,底层源码解析,应用场景及实践,相关配置
Luence.Net搜索Demo
Luence in Action 中英文 pdf
luence4.6 源代码
利用Luence.net做的搜索,实现搜索高亮,盘古分词,只能匹配,是做搜索的好例子。
下载可运行。 使用前后端分离架构, 使用springMvc 、 spring、 mybatis、 luence等技术开发的开源知识库所有后台代码
使用luence索引数据库中的记录,完整的例子
lucene基础学习笔记&源码
首先读取文件,添加数据库记录,然后lucene读取数据库生成索引文件,再通过lucene检索
基于ajax与luence构建搜索引擎的设计和实现论文.doc
VerticalSearcher基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索
基于ajax与luence构建搜索引擎的设计和实现_论文.doc
stopword+dic 分词器分析
使用Lucene,可以非常方便给我们的应用增加上全文索引的功能,使用上也非常简单,示例JAVA代码,为了简单好理解,示例是以将内存中加入一些字符串,并通过查询结果,再将结果显示出来
基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索