Lucene的核心包
来源:互联网 发布:淘宝保证金怎么扣 编辑:程序博客网 时间:2024/06/05 16:38
检索领域的明星lucene,被公认为高效的检索算法,其被广泛应用在其他领域中,包括微软的邮箱检索等。其的核心包有7个,名称和功能介绍如下:
序号 包名 功能简介 1 index 构建索引 2 analyze 文本分析接口 3 document 文档逻辑接口 4 Search 文档检索接口 5 Query 构建查询接口 6 Store 存储处理接口
为了使用Lucene,一个应用程序需要包含以下步骤:
为了使用Lucene,一个应用程序需要包含以下步骤:
1)创建增加Field的文档;
2)创建IndexWriter增加文档信息;
3)通过QueryParser创建查询实体;
4)通过IndexSearcher查询文档;.
使用中的核心关键类是IndexWriter和IndexReader,这两个类分别负责索引的创建和文档的检索.其实例如下,Lucene版本号是6.1.2:
public static void main(String[] args) {
try {
Analyzer analyzer=new StandardAnalyzer();
//Directory directory=new RAMDirectory();
Directory directory=FSDirectory.open(Paths.get("D:\\lucene"));
IndexWriterConfig config=new IndexWriterConfig(analyzer);
IndexWriter writer=new IndexWriter(directory,config);
Document document=new Document();
String text = "This is the text to be indexed.";
document.add(new Field("fieldname", text, TextField.TYPE_STORED));
writer.addDocument(document);
writer.close();
DirectoryReader reader=DirectoryReader.open(directory);
IndexSearcher searcher=new IndexSearcher(reader);
QueryParser parser=new QueryParser("fieldname", analyzer);
Query query=parser.parse("text");
ScoreDoc[] hits = searcher.search(query, 100).scoreDocs;
// Iterate through the results:
for (int i = 0; i < hits.length; i++) {
Document hitDoc = searcher.doc(hits[i].doc);
System.out.print(hitDoc.toString());
}
reader.close();
directory.close();
} catch (Exception e) {
// TODO: handle exception
System.out.print(e.getStackTrace());
}
}
try {
Analyzer analyzer=new StandardAnalyzer();
//Directory directory=new RAMDirectory();
Directory directory=FSDirectory.open(Paths.get("D:\\lucene"));
IndexWriterConfig config=new IndexWriterConfig(analyzer);
IndexWriter writer=new IndexWriter(directory,config);
Document document=new Document();
String text = "This is the text to be indexed.";
document.add(new Field("fieldname", text, TextField.TYPE_STORED));
writer.addDocument(document);
writer.close();
DirectoryReader reader=DirectoryReader.open(directory);
IndexSearcher searcher=new IndexSearcher(reader);
QueryParser parser=new QueryParser("fieldname", analyzer);
Query query=parser.parse("text");
ScoreDoc[] hits = searcher.search(query, 100).scoreDocs;
// Iterate through the results:
for (int i = 0; i < hits.length; i++) {
Document hitDoc = searcher.doc(hits[i].doc);
System.out.print(hitDoc.toString());
}
reader.close();
directory.close();
} catch (Exception e) {
// TODO: handle exception
System.out.print(e.getStackTrace());
}
}
阅读全文
0 0
- Lucene的核心包
- apache lucene 的核心类
- apache lucene 的核心类
- Lucene的核心API介绍
- Lucene 的核心索引类
- Lucene的包结构
- Lucene的特性分析 -- lucene的核心部分
- 细谈Lucene(三):Lucene的 核心API 简介
- Lucene各个包的说明
- lucene包的下载地址
- lucene 索引过程的核心类
- ssh框架的核心包
- 常用的Java核心包
- 常用的Java核心包
- 常用的Java核心包
- 关于Lucene SandBox包的下载问题
- eclipse配置lucene的jar包
- lucene核心类详解
- 关于算法上的一些问题
- 第九课 汇总数据
- springMVC3.2 多视图解析器 java.lang.String cannot be cast to org.springframework.http.MediaType
- better-scroll的参数和方法
- hihoCoder1586 Minimum 线段树
- Lucene的核心包
- zxing生成二维码
- 如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)
- 【bzoj 1001】狼抓兔子(网络流)
- error: Cannot find OpenSSL's <evp.h> Mac
- JDBC之Transaction(事务)
- Netty+ProtoBuf的实例教程
- Nodemcu连接到EMQ服务器
- VS2013正在等待所需操作完成