Lucene学习笔记
核心包名
|
功能说明
|
org.apache.lucene.analysis
|
语言分析器;主要用于分词
|
org.apache.lucene.document
|
索引存储的文档管理,类似关系数据系统中的表
|
org.apache.lucene.index
|
索引管理:增加、修改、删除索引等
|
org.apache.lucene.queryParser
|
查询分析器:实现查询关键词的运算
|
org.apache.lucene.search
|
检索管理:根据查询条件,检索到结果
|
org.apache.lucene.store
|
数据存储管理:主要包括底层的一些I/O操作
|
org.apache.lucene.util
|
包括一些公共的使用类
|
|
数据库
|
Lucene
|
概
念
|
列/字段
|
Field
|
行/记录
|
Document
|
|
查询(SELECT)
|
Searcher
|
|
操
作
|
添加(INSERT)
|
IndexWriter. addDocument
|
删除(DELETE)
|
IndexReader.delete
|
|
修改(UPDATE)
|
不支持(可删除后重新添加)
|
package com.fxr.demo2; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; public class TestIndex { public static void main(String[] args) throws IOException { String [] ids = {"1","2","3"}; String [] names = {"zhangsan","lisi","wangwu"}; String [] addresses = {"zhengzhou","shanghai","beijing"}; Analyzer analyzer = new StandardAnalyzer();//标准的分词器 String indexDir = "f:/lucenefxrindex"; Directory dir=FSDirectory.getDirectory(indexDir);//索引存放的位置 //TRUE 表示创建或者覆盖当前的索引;FALSE表示对当前的索引进行追加 //default 的值是128 IndexWriter indexWriter = new IndexWriter(dir,analyzer,true,IndexWriter.MaxFieldLength.LIMITED); for(int i=0;i<ids.length;i++){ Document document = new Document(); document.add(new Field("id",ids[i],Field.Store.YES,Field.Index.ANALYZED)); document.add(new Field("name",names[i],Field.Store.YES,Field.Index.ANALYZED)); document.add(new Field("address",addresses[i],Field.Store.YES,Field.Index.ANALYZED)); indexWriter.addDocument(document); } indexWriter.optimize(); indexWriter.close(); } }
package com.fxr.demo2; import java.io.IOException; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; public class TestDelete { public static void main(String[] args) throws IOException { String indexDir = "f:/lucenefxrindex"; Directory dir=FSDirectory.getDirectory(indexDir); IndexReader reader=IndexReader.open(dir); System.out.println(reader.maxDoc()); //reader.deleteDocument(0); System.out.println(reader.maxDoc()); System.out.println(reader.deleteDocuments(new Term("id","2"))); System.out.println(reader.numDocs()); reader.close(); dir.close(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。