Lucene6入门教程(五)版本改变
2017-08-24 09:56
549 查看
版本变化:
IndexWriterConfig 类的构造方法;
Directory类的生成方法 FSDirectory.open(),(Path,File);
Field类中的存储问题,Intpoint取代IntField;
BooleanQuery() 的构造方法改变;
PointValues 取代了NumericField,.legacyXXField废弃;
WhitespaceAnalyzer类的废弃;
现在,Luene已经是6.6版本了,与之前的2.9,3.5,4.5,5等各个版本,已经很有些不同了。学习4.0之前的教程,我可是吃过不少亏的。
具体变化:
(1)IndexWriterConfig 类的构造方法:
这个类主要是充当创造/在索引过程中更新指标的对象。
原来Lucene4.0之前
现在Lucene6
(2)Directory类的生成方法 FSDirectory.open(),(Path,File);
这个类主要便是打开词盘中的文件,
原来Lucene4.0之前
现在Lucene6
(3)Field类中的存储问题,Intpoint取代IntField;
原来的IntField类主要是实现整形的域内操作,而现在它主要改为Intpoint了,
原来Lucene用
现在Lucene6用,需要配合StoredField来存储,需要NumericDocValuesField和StoredField来排序
(4)BooleanQuery() 的构造方法改变;
BooleanQuery()的作用范围是 private 的,只能在类的内部调用,最大的改变是多出了静态内部类 Builder ,加强了类自身的稳定性与安全性。
原来Lucene用
现在Lucene6用
(5)PointValues 取代了NumericField,.legacyXXField废弃
PointValues 更快,更小,更便于资源的利用,都被取代了legacy**,
原来Lucene
现在Lucene6
(6)WhitespaceAnalyzer类的废弃;
参考:lucene6.6学习心得 https://segmentfault.com/a/1190000010367206
IndexWriterConfig 类的构造方法;
Directory类的生成方法 FSDirectory.open(),(Path,File);
Field类中的存储问题,Intpoint取代IntField;
BooleanQuery() 的构造方法改变;
PointValues 取代了NumericField,.legacyXXField废弃;
WhitespaceAnalyzer类的废弃;
现在,Luene已经是6.6版本了,与之前的2.9,3.5,4.5,5等各个版本,已经很有些不同了。学习4.0之前的教程,我可是吃过不少亏的。
具体变化:
(1)IndexWriterConfig 类的构造方法:
这个类主要是充当创造/在索引过程中更新指标的对象。
原来Lucene4.0之前
writer = new IndexWriter(indexDirectory, new StandardAnalyzer(Version.LUCENE_36),true, IndexWriter.MaxFieldLength.UNLIMITED);
现在Lucene6
Analyzer analyzer=new StandardAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(analyzer); IndexWriter writer = new IndexWriter(dir, iwc);
(2)Directory类的生成方法 FSDirectory.open(),(Path,File);
这个类主要便是打开词盘中的文件,
原来Lucene4.0之前
Directory directory = FSDirectory.open(new File(“C:\”));
现在Lucene6
Directory directory = FSDirectory.open(Path.get(“C:\”));
(3)Field类中的存储问题,Intpoint取代IntField;
原来的IntField类主要是实现整形的域内操作,而现在它主要改为Intpoint了,
原来Lucene用
import org.apache.lucene.document.IntField; document.add(new IntField("id", id[i], Field.Store.YES));
现在Lucene6用,需要配合StoredField来存储,需要NumericDocValuesField和StoredField来排序
import org.apache.lucene.document.IntPoint; doc.add(new NumericDocValuesField("id", id[i]));//和下边排序 doc.add(new IntPoint("id", id[i])); doc.add(new StoredField("id", id[i])); //存储
(4)BooleanQuery() 的构造方法改变;
BooleanQuery()的作用范围是 private 的,只能在类的内部调用,最大的改变是多出了静态内部类 Builder ,加强了类自身的稳定性与安全性。
原来Lucene用
BooleanQuery query = new BooleanQuery(); for (Query subQuery : querys) { query.add(subQuery,Occur.SHOULD); } return query;
现在Lucene6用
for (Query subQuery : querys) { new BooleanQuery.Builder().add(subQuery,Occur.SHOULD).build(); } return query;
(5)PointValues 取代了NumericField,.legacyXXField废弃
PointValues 更快,更小,更便于资源的利用,都被取代了legacy**,
原来Lucene
document.add(new IntField("mouths", 1)); writer.addDocument(document); Query query = new NumericRangeQuery("mouths", 1, 8,false,false); TopDocs docs = searcher.search(query, ...);
现在Lucene6
document.add(new IntPoint("mouths", 1)); writer.addDocument(document); Query query = IntPoint.newRangeQuery("mouths", 1, 8); TopDocs docs = searcher.search(query, ...);
(6)WhitespaceAnalyzer类的废弃;
参考:lucene6.6学习心得 https://segmentfault.com/a/1190000010367206
相关文章推荐
- 最新版本Lucene 4.2.1入门教程(查询构造)
- Lucene入门教程03
- Lucene 6.2.1入门教程(三) 近实时搜索的变化
- Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)
- Lucene入门教程(二)- 理解索引过程的核心类
- 最新版本Lucene 4.2.1入门教程
- Android教程入门:不同平台版本支持
- Lucene入门教程
- Lucene 6.2.1入门教程(一) 创建索引和基本搜索索引
- [转载]Jigloo 开发 SWT 的入门教程(修改版本)
- 版本控制工具 GIT入门教程
- 【视频教程】JEECG 入门视频教程大全+历史版本代码下载
- Lucene入门教程
- Lucene入门教程(二)- 理解索引过程的核心类
- Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)
- 版本控制工具 GIT入门教程
- Lucene 6.2.1入门教程(二) 添加索引时新API与旧API的一些不同之处
- Lucene6入门教程(三)搜索和查询
- elasticsearch入门教程一(基于JAVA client 针对5.1版本)
- Lucene入门教程(二)- 理解索引过程的核心类