什么是lucene?
lucene的官方文档http://lucene.apache.org/core/
lucene就是一个全文检索的工具包。
Lucene的能干什么?
1. 获取内容(Acquire Content)
Lucene不提供爬虫功能,如果需要获取内容需要自己建立爬虫应用。
Lucene只做索引和搜索工作。
2.建立文档(Build Document)
文档通常由一个个域(fields)组成,例如:标题,正文,摘要等。
需要保证文档的格式一致(如都为txt格式)
在此过程中可以通过语义分析来使要保存的文档更加精炼,也可以通过加权值来决定域和文档是否重要。
可以再建立索引的时候加权值,也可以在搜索的时候加权值。
3.分析文档(Analyze Document)
解决如果控制符合单词,解决拼写错误,是否关联同义词,是否折叠单数复数形式。
是否保留结果的偏差,当非拉丁语表示的语言,如何辨别词。
4.建立文档索引(Index Document)
5.搜索
支持单个或者符合查询,短语查询,通配符,模糊查询,结果排序
支持对错误拼写矫正等
6建立查询(Build Query)
7.检索查询(Search Query)
8返回结果(Rednder Results)
Lucene的分词器?
常用分词器介绍
WhitespaceAnalyzer
仅仅是去掉了空格,没有其他任何操作,不支持中文。
SimpleAnalyzer
讲除了字母以外的符号全部去除,并且讲所有字符变为小写,需要注意的是这个分词器同样把数据也去除了,同样不支持中文。
StopAnalyzer
这个和SimpleAnalyzer类似,不过比他增加了一个的是,在其基础上还去除了所谓的stop words,比如the, a, this这些。这个也是不支持中文的。
StandardAnalyzer
英文方面的处理和StopAnalyzer一样的,对中文支持,使用的是单字切割。
CJKAnalyzer
这个支持中日韩,前三个字母也就是这三个国家的缩写。这个对于中文基本上不怎么用吧,对中文的支持很烂,它是用每两个字作为分割,分割方式个人感觉比较奇葩,我会在下面比较举例。
SmartChineseAnalyzer
中文的分词。比较标准的中文分词,对一些搜索处理的并不是很好
步骤一:打开eclipse,创建maven现目