import org.apache.commons.io.FileUtils;

import org.apache.lucene.document.Document;

import org.apache.lucene.document.Field;

import org.apache.lucene.document.NumericDocValuesField;

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;

import org.junit.Test;

import java.io.File;

import java.io.IOException;

import java.nio.file.Path;

import java.nio.file.Paths;

public class Day01 {

public String dataDir="E:\\data";

@Test

//1.创建索引

public void createIndex() throws IOException {

//01.准备一个写入索引的目录

Path path = Paths.get("./luceneindex/");

//02.将路径与Directory进行绑定

Directory directory=FSDirectory.open(path);

//03.这行code在底层默认已经关联绑定了一个StandardAnalyzer 标准分词器

IndexWriterConfig config=new IndexWriterConfig();

//04.给config设置一个模式 Create:每次都抹掉原来的索引文件,重新构建新的索引文件

config.setOpenMode(IndexWriterConfig.OpenMode.CREATE);

//05.索引写入器需要两个入参,一个是目录,另一个是配置

IndexWriter writer=new IndexWriter(directory,config);

//06.准备加入索引库的内容

File file = new File(dataDir); /

/07.某个目录下的文件集合

File[] files = file.listFiles(); for (File item:files) {

//08.将内容幻化成----->Document

Document document=new Document();

String filename=item.getName();

//file--->String

String filecontent=FileUtils.readFileToString(item);

Long modifydate=item.lastModified();

//09.真正的给Document的field赋值

document.add(new TextField("filename",filename,Field.Store.YES));

document.add(new TextField("filecontent",filecontent,Field.Store.YES));

document.add(new NumericDocValuesField("modifydate",modifydate));

//10.将单个Document(一条记录) 保存到 索引库中

writer.addDocument(document); }

//11.关闭索引库

writer.close();

System.out.println("add indexes ok!"); } }

使用Lucene的api将索引创建到索引库中的更多相关文章

  1. MongoDB索引创建(5)

    索引创建 1:索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引 2. 在mongodb中,索引可以按字段升序/降序来创建,便于排序 3. 默认是用btree来组织索引文件,2. ...

  2. SQL优化 MySQL版 - 索引分类、创建方式、删除索引、查看索引、SQL性能问题

    SQL优化 MySQL版  - 索引分类.创建方式.删除索引.查看索引.SQL性能问题 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 索引分类 单值索引 单的意思就是单列的值,比如说有 ...

  3. mysql创建索引以及对索引的理解

    创建表的时候创建索引   创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度.创建索引有3种方式,这3种方式分别是创建表的时候创建索引.在已经存在的表上创建索引和使用ALTER T ...

  4. MySql创建索引、删除索引、新增字段、删除字段、修改字段语句

    --------------------------------------------------------- -- ALTER TABLE 创建索引 ---------------------- ...

  5. mysql索引创建和使用细节

    最近困扰自己很久的膝盖积液手术终于做完,在家养伤,逛技术博客看到easyswoole开发组成员仙士可博客有关mysql索引方面的知识,自己打算重温下. 正常业务起步数据表数据量较少,不用考虑使用索引, ...

  6. es创建普通索引以及各种查询

    创建索引 创建普通索引: PUT /my_index { "settings": { "index": { "number_of_shards&quo ...

  7. oracle的位图索引和函数索引

    1.位图索引 位图索引适用于性别.婚姻状态.行政区等只有几列固定值的类型列,身份证号等就不适合位图索引,位图索引适用于静态数据,频繁更新的字段不适用建立位图索引,因为更新会导致索引块区的变更,还会引起 ...

  8. INDEX--创建索引和删除索引时的SCH_M锁

    最近有一个困惑,生产服务器上有一表索引建得乱七八糟,经过整理后需要新建几个索引,再删除几个索引,建立索引时使用联机(ONLINE=ON)创建,查看下服务器负载(磁盘和CPU压力均比较低的情况)后就选择 ...

  9. lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这 ...

随机推荐

  1. 记一下一道关于finally的题

     题目: public class Test{ public int add(int a,int b){ try { return a+b; } catch (Exception e) { Syste ...

  2. 【转】Effective C#观后感之提高Unity中C#代码质量的21条准则

    转自:http://blog.csdn.net/swj524152416/article/details/75418162 我们知道,在C++领域,作为进阶阅读材料,必看的书是<Effectiv ...

  3. json_encode 中文处理

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. ...

  4. 面向对象super内置函数(转)

    super函数用来解决钻石继承. 一.python的继承以及调用父类成员 父类: class Base(object): def __init__(self): print("base in ...

  5. spark-wordcount-sample算子测试

    import org.apache.spark.{SparkConf, SparkContext} object radomSampleU { def main(args: Array[String] ...

  6. 解决常见SVN冲突问题(转)

    转自:http://www.w3cfuns.com/blog-5443287-5403523.html 一个大项目在开发中可能会拆分成几个小项目,分别分去,同时共通的部分再由人做,做完后再统一合并.同 ...

  7. sql server 2008怎么设置不允许windows身份验证

  8. SQLServer外键查询删除信息

    SELECT FK.NAME,FK.OBJECT_ID,OBJECT_NAME(FK.PARENT_OBJECT_ID) AS REFERENCETABLENAMEFROM SYS.FOREIGN_K ...

  9. Slacklining 2017/2/6

    原文 Get ready for a different kind of challenge What happens when mountain climbers take a day off?Ap ...

  10. MFC U盘检测

    WM_DEVICECHANGE消息 查阅MSDN得知: The framework calls this member function to notify an application or dev ...