package cn.lucene;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date; 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.Store;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory; public class First { public static void main(String[] args) throws IOException {
long startTime = new Date().getTime();
/*
* Analyzer:建立索引时使用的分析器 主要子类有StandardAnalyzer(一个汉字一个词)
* 还可以由第三方提供如开源社区提供一些中文分词器
*/
Analyzer analyzer = new StandardAnalyzer();
/*
* Directory:代表索引文档的存储位置 这是一个抽象类有FSDirectory和RAMDirectory两个主要子类
* 前者将索引写入文件系统,后者将索引文档写入内存
*/
Directory dir = FSDirectory.open(Paths.get("E:\\LuceneIndex"));
// 操作索引库的配置信息
IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
// 建立索引的核心类,用来操作索引(增、删、改)
IndexWriter iw = new IndexWriter(dir, iwc);
addDoc(iw, "1", "libiao1", "张三是中国人1",20160101);
addDoc(iw, "2", "libiao2", "李四是美国人2",20160102);
addDoc(iw, "3", "libiao3", "王五是中国人3",20160103);
addDoc(iw, "4", "libiao4", "马六是俄国人4",20160104);
addDoc(iw, "5", "libiao5", "赵七是中国人5",20160105);
addDoc(iw, "6", "qqqq", "苏八是中国人5",20160106);
addDoc(iw, "7", "bbbb", "我是中国人5",20160107);
iw.close(); long endTime = new Date().getTime();
System.out.println((endTime - startTime) + "s");
} private static void addDoc(IndexWriter iw, String id, String name, String title, Integer dt) throws IOException {
Document doc = new Document();
/*
* @NumericDocValuesField:存储long类型。日期与时间也可以转换为数字类型存储与筛选
*
* @DoubleDocValuesField:存储double类型
*
* @StringField:构造函数。内部调用setTokenized(false)设置不分词。一般用于国家名、作者名、id等
*
* @TextField:构造函数。内部调用setTokenized(true)实现分词。一般用于文档正文
*/
doc.add(new StringField("id", id,Store.YES));
doc.add(new StringField("name", name, Store.YES));
doc.add(new TextField("title", title, Store.YES));
doc.add(new StringField("dt", dt.toString(),Store.YES));//用于查询的属性
doc.add(new NumericDocValuesField("dt", dt));//用于排序的属性 iw.addDocument(doc);
} }

  

第五步:Lucene创建索引的更多相关文章

  1. lucene创建索引的几种方式(一)

    什么是索引: 根据你输入的值去找,这个值就是索引 第一种创建索引的方式: 根据文件来生成索引,如后缀为.txt等的文件 步骤: 第一步:FSDirectory.open(Paths.get(url)) ...

  2. lucene创建索引简单示例

    利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下: 废话不多说,直接贴代码如下: 1.创建索引的类(HelloLucene): packa ...

  3. Lucene创建索引和索引的基本检索(Lucene 之 Hello World)

    Author: 百知教育 gaozhy  注:演示代码所使用jar包版本为 lucene-xxx-5.2.0.jar 一.lucene索引操作 1.创建索引代码 try { // 1. 指定索引文件存 ...

  4. Lucene创建索引流程

    1.创建索引流程 原始文档:互联网上的网页(爬虫或蜘蛛).数据库中的数据.磁盘上的文件 创建文档对象(非结构化数据) 文档对象中的属性不叫属性现在成为域. 每个 Document 可以有多个 Fiel ...

  5. 搜索引擎学习(二)Lucene创建索引

    PS:需要用到的jar包: 代码实现 1.工程结构 2.设置工程依赖的jar包 3.代码实现 /** * Lucene入门 * 创建索引 */ public class CreateIndex { / ...

  6. lucene创建索引

    创建索引. 1.lucene下载. 下载地址:http://archive.apache.org/dist/lucene/java/. lucene不同版本之间有不小的差别,这里下载的是lucene ...

  7. 搜索引擎学习(五)Lucene操作索引

    一.代码分析 /** * Lucene入门 * 操作索引 */ public class ManageIndex { public IndexWriter getIndexWriter() throw ...

  8. HTML5离线Web应用实战:五步创建成功

    [IT168 技术]HTML5近十年来发展得如火如荼,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.HTML功能越来越丰富,支持图片上传拖拽.支持localstorage. ...

  9. Lucene系列五:Lucene索引详解(IndexWriter详解、Document详解、索引更新)

    一.IndexWriter详解 问题1:索引创建过程完成什么事? 分词.存储到反向索引中 1. 回顾Lucene架构图: 介绍我们编写的应用程序要完成数据的收集,再将数据以document的形式用lu ...

随机推荐

  1. Still unable to dial persistent://blog.csdn.net:80 after 3 attempts

    动不动电脑有些网站打不开了,还报错: Still unable to dial persistent://blog.csdn.net:80 after 3 attempts 为什么呢? 是dns坏了? ...

  2. error LNK2001: unresolved external symbol @__security_check_cookie

    Q:VS2005编译的静态库, 在vc++6.0中连接出现错误 error LNK2001: unresolved external symbol @__security_check_cookie@l ...

  3. The Django Book

    The Django Book Table of contents 2.0, English -> Chinese Django book 2.0 的中文翻译. 最近更新 - 贡献者 方便自己也 ...

  4. 《Cracking the Coding Interview》——第1章:数组和字符串——题目1

    2014-03-18 01:25 题目:给定一个字符串,判断其中是否有重复字母. 解法:对于可能有n种字符的字符集,用一个长度为n的数组统计每个字符的出现次数,大于1则表示有重复. 代码: // 1. ...

  5. 事件Qevent的接受和忽略 和重定义 事件过滤器(转)

    转载来源:http://blog.csdn.net/seanyxie/article/details/5821970 事件处理流程:某个事件发生------>exec()循环会接收到这个事件-- ...

  6. HDU 4747 Mex ( 线段树好题 + 思路 )

    参考:http://www.cnblogs.com/oyking/p/3323306.html 相当不错的思路,膜拜之~ 个人理解改日补充. #include <cstdio> #incl ...

  7. 微信小程序--获取form表单初始值提交数据

    <form bindsubmit="formSubmit"> <view class="txt"> <view class=&qu ...

  8. 01、dos命令行的常用命令

    cd 进入指定目录cd..  返回上一级目录cd\   退回盘符根目录dir        列出当前目录下的文件以及文件夹md       创建目录rd 删除目录del   删除文件cls       ...

  9. Hexo安装配置详解

    原文 http://blog.csdn.net/tonydandelion2014/article/details/61615898 http://www.joryhe.com/2016-06-06- ...

  10. 【bzoj1856】[Scoi2010]字符串 Catalan数

    题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgww想要知道满足 ...