lucene学习-创建索引
本文的lucene是基于lucene3.5版本.
使用lucene实现搜索引擎开发,核心的部分是建立索引和搜索。本节主要是记录创建索引部分的内容。
创建的索引结构如图所示。

创建索引的步骤分为以下几个步骤:
1、建立索引器IndexWriter
2、创建文档对象Document
3、建立信息对象字段Field
4、将Field对象添加到Document
5、将Document对象添加到IndexWriter对象中
下面简要介绍几个核心对象。
(1)、创建IndexWriter对象。
IndexWriter writer=new IndexWriter(directory, iwc)。
directory是创建的索引要保存的路径,如果要保存在硬盘中则使用Directory directory = FSDirectory.open(new File(path))创建一个directory对象。
如果要保存在内存中则使用:RAMDirectory directory=new RAMDirectory()创建一个directory对象。
(2)、创建Document对象。
Document doc =new Document();创建了一个不含有任何Field的空Document,如果要要Field添加到Document中,则使用add(Field)方法即可实现。
doc.add(field)。
(3)、创建Field对象。
Field field=new Field(Field名称,Field内容,存储方式,索引方式);
存储方式分为3种:1、完全存储(Field.Store.YES);2、不存储(Field.Store.NO);3、压缩存储(Field.Store.COMPRESS)。
索引方式分为4种:1、不索引(Field.Index.NO);2、 Field.Index.ANALYZED ;3、 Field.Index.NOT_ANALYZED;4、Field.Index.NOT_ANALYZED_NO_NORMS
创建一个简单的索引程序代码如下所示:
public void Index() {
String[] ids = { "1", "2", "3", "4" };
String[] names = { "aa", "bb", "cc", "dd" };
String[] contents = {
"Using AbstractJExcelView to export data to Excel file via JExcelAPI library",
"Using AbstractPdfView to export data to Pdf file via Bruno Lowagie’s iText library. ",
"Example to integrate Log4j into the Spring MVC application. ",
"Using Hibernate validator (JSR303 implementation) to validate bean in Spring MVC. " };
IndexWriter writer = null;
try {
Directory directory = FSDirectory.open(new File(path));
// RAMDirectory directory=new RAMDirectory();
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_35,
new StandardAnalyzer(Version.LUCENE_35));
writer = new IndexWriter(directory, iwc);
Document doc = null;
for (int i = 0; i < ids.length; i++) {
doc = new Document();
doc.add(new Field("id", ids[i], Field.Store.YES,
Field.Index.NOT_ANALYZED_NO_NORMS));
doc.add(new Field("name", names[i], Field.Store.YES,
Field.Index.NOT_ANALYZED_NO_NORMS));
doc.add(new Field("contents", contents[i], Field.Store.YES,
Field.Index.ANALYZED));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
doc.add(new Field("date", sdf.format(new Date()),
Field.Store.YES, Field.Index.NOT_ANALYZED));
// Field.Index.ANALYZED;
writer.addDocument(doc);
writer.commit();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
lucene学习-创建索引的更多相关文章
- lucene简介 创建索引和搜索初步
lucene简介 创建索引和搜索初步 一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引 ...
- lucene中创建索引库
package com.hope.lucene;import org.apache.commons.io.FileUtils;import org.apache.lucene.document.Doc ...
- lucene入门创建索引——(二)
1.程序宏观结构图
- 搜索引擎系列 ---lucene简介 创建索引和搜索初步
一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 :Lucene得名于Doug妻子 ...
- 搜索引擎学习(二)Lucene创建索引
PS:需要用到的jar包: 代码实现 1.工程结构 2.设置工程依赖的jar包 3.代码实现 /** * Lucene入门 * 创建索引 */ public class CreateIndex { / ...
- HBase中创建索引
hbasene(https://github.com/akkumar/hbasene)是开源项目,在hbase存储上封装使用Lucene来创建索引,代码API非常简单,熟悉lucene的朋友可以很方便 ...
- lucene&solr学习——创建和查询索引(代码篇)
1. Lucene的下载 Lucene是开发全文检索功能的工具包,从官网下载Lucene4.10.3并解压. 官网:http://lucene.apache.org/ 版本:lucene7.7.0 ( ...
- lucene&solr学习——创建和查询索引(理论)
1.Lucene基础 (1) 简介 Lucene是apache下的一个开放源代码的全文检索引擎工具包.提供完整的查询引擎和索引引擎:部分文本分析引擎. Lucene的目的是为软件开发人员提供一个简单易 ...
- Apache Lucene(全文检索引擎)—创建索引
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...
随机推荐
- MVC架构、WebForm与MVC对比
ylbtech-ASP.NET MVC:WebForm与MVC对比 功能描述:WebForm与MVC对比 A.1,MVC架构 •MVC(Model-View-Controller)用于表示一种软件架构 ...
- Discuz! 7.1 & 7.2 远程代码执行漏洞
受影响产品: Discuz! 7.1 & 7.2 漏洞描述: 产生漏洞的$scriptlang数组在安装插件后已经初始化 Discuz!新版本7.1与7.2版本中的showmessage函数中 ...
- javascript快速入门27--XSLT基础
XSL 与 XSLT XSL 指扩展样式表语言(EXtensible Stylesheet Language).它主要被用来对XML文档进行格式化,与CSS不同,XSL不仅仅是样式表语言XSL主要包括 ...
- Yii2-核心框架代码规范
1.概述 简单说,我们使用PSR-2兼容规范,所以应用于PSR-2的一切对我们的代码也同样适用. 文件必须使用 <?php 或 <?= 标签. 文件未尾应该有一个新行. PHP代码文件必须 ...
- Scala快学笔记(二)
一,基本概念 1,映射 Map与HashMap与TreeMap,SotredMap等区别: 1.HashMap键无序,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度 ...
- Centos 7 搭建蓝鲸V4.1.16社区版
第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档. 友情链接:蓝鲸智云社区版V4.1.16用户手册 搭建时遇到了不少的坑,这里做一个详细的安装梳理 主机硬件要求 官方的推荐如下: 在本地用VMware ...
- ITFriend站点内測公測感悟
4月份做出站点Demo.就開始让用户使用了. 最初的黄色版界面.被吐槽得比較厉害. 关于界面.每一个人都有自己的看法,仅仅是喜欢和不喜欢的人比例不一样. 后来.花3400元请了个设计师,设计了一套界面 ...
- 时间见证着—eternal life
上帝并不是这么公平的爱每个人,祂会多爱那些在困难.痛苦.悔恨中的人一点点.因为在那个当下,他们比一般人更需要知道上帝对他们的爱. 开通空间:http://imgcache.qq.com/qzone ...
- rabbitMq视频教程
http://edu.51cto.com/index.php?do=lesson&id=83136
- Python人体肤色检测
代码地址如下:http://www.demodashi.com/demo/12967.html Python人体肤色检测 概述 本文中的人体肤色检测功能采用 OpenCV 库实现, OpenCV是一个 ...