使用java操作lucene
使用lucene创建索引库
package
生成的索引库是二进制文件,可以通过 luke工具查看
关键词列表
每个文档的内容
查询保存的索引
public
查询结果如下
分析器
关于分析器
IndexWriterConfig 默认使用标准分析器 StandardAnalyzer
public IndexWriterConfig() {
this(new StandardAnalyzer());
}
查看标准分析器的分析效果
public
分析效果
标准分析器对中文支持不太好,可以使用第三方 IKAnalyzer 分析器
使用 IKAnalyzer 需要将配置文件和扩展词典添加到工程的classpath下
扩展词典严禁使用win记事本编辑,需要保证 utf-8格式
扩展词典可以添加一些新词
停用词词典可以是一些无意义的词或者是敏感词
Analyzer
可以自行添加扩展词典和停用词词典
使用新的分析器重新创建索引库
IndexWriterConfig
Field的选择
1 StringField(FieldName, FieldValue,Store.YES))
数据类型 字符串,一般不分析,可以索引和储存
2 LongPoint(String name, long... point)
数据类型 Long型,一般分析和索引,不储存
3 StoredField(FieldName, FieldValue)
一般只储存,不分析和索引
4 TextField(FieldName, FieldValue, Store.NO) 或 TextField(FieldName, reader)
数据类型 字符串或流,一般分析、索引且储存
之前的Field可以改为
Field
这时path和size两个Field中的term为空,不参与分析
但由于我们使用StoredField储存了这两个值,所以是可以取出来的