PS:需要用到的jar包:

代码实现

1、工程结构

2、设置工程依赖的jar包

3、代码实现

/**
* Lucene入门
* 创建索引
*/
public class CreateIndex { /**
* 创建索引
* 第一步:创建java工程,导入相关的jar包
* 第二步:创建一个indexWriter(索引写入)对象
* (1)指定索引库的存放位置Directory
* (2)指定一个分析器,对文档内容进行分析
* 第三步:创建document(文档)对象
* 第四步:创建field(域)对象,将field添加到document对象中
* 第五步:使用indexWriter对象将document对象写入索引库,此过程进行索引创建,并将索引和document对象写入索引库
* 第六步:关闭indexWriter对象(关流)
*/
@Test
public void createIndex() throws Exception { /*第二步:创建一个indexWriter(索引写入)对象*/
//设置索引库的位置(PS:若使用RAMDiretory则是使用内存当做索引库,但是一关机就凉凉...)
Directory directory = FSDirectory.open(new File("E:\\zhanghaoBF\\luceneSolr\\indexLibrary").toPath());
//创建分词器对象(官方推荐标准分词器)
Analyzer analyzer = new StandardAnalyzer();
//设置使用的分词器
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer);
//创建索引对象
IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig); File f = new File("E:\\zhanghaoBF\\luceneSolr\\indexField");
File[] listFiles = f.listFiles();
for (File file : listFiles) {
/*第三步:创建document(文档)对象*/
Document document = new Document(); /*第四步:创建field(域)对象,将field添加到document对象中*/
//文件名称
String file_name = file.getName();
Field fileNameField = new TextField("fileName", file_name, Field.Store.YES);
//文件大小
long file_size = FileUtils.sizeOf(file);
Field fileSizeField = new StoredField("fileSize", file_size + "");
//文件路径
String file_path = file.getPath();
Field filePathField = new StoredField("filePath", file_path + "");
//文件内容
String file_content = FileUtils.readFileToString(file);
Field fileContentField = new TextField("fileContent", file_content, Field.Store.NO);//第三个参数是设置存不存在索引库里 document.add(fileNameField);//文件名称
document.add(fileSizeField);//文件大小
document.add(filePathField);//文件路径
document.add(fileContentField);//文件内容 /*第五步:使用indexWriter对象将document对象写入索引库,此过程进行索引创建,并将索引和document对象写入索引库*/
indexWriter.addDocument(document);
} /*第六步:关闭indexWriter对象(关流)*/
indexWriter.close();
}
}

4、右键运行后,查看生成的索引文件

5、使用luke查看索引

完事  lucene代码创建索引就算成功了~

搜索引擎学习(二)Lucene创建索引的更多相关文章

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

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

  2. lucene创建索引简单示例

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

  3. lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录管理)基于lucene5.5.3

    前言: lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器.管理索引目录和中文分词器的使用. 包括标准分词器,IKAnalyzer分词器以及两种索引目录的创 ...

  4. Lucene4.9学习笔记——Lucene建立索引

    基本上创建索引需要三个步骤: 1.创建索引库IndexWriter对象 2.根据文件创建文档Document 3.向索引库中写入文档内容 这其中主要涉及到了IndexWriter(索引的核心组件,用于 ...

  5. lucene创建索引

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

  6. 数据库索引<二> 如何创建索引

    前面一篇说法了索引结构,和几种索引在数据表上的结构,了解了索引可以为查询服务,这篇说一说如何创建索引. >平时可能的创建方式 这个系统中要用到A字段,B字段,C字段做为查询的条件,联接的条件较多 ...

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

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

  8. Lucene创建索引流程

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

  9. lucene&solr学习——solr学习(二) Solr管理索引库

    1.什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 依赖jar包: 2 ...

随机推荐

  1. Golang omitempty 的用法

    原文链接:https://blog.csdn.net/skh2015java/article/details/90720692omitempty作用是在json数据结构转换时,当该字段的值为该字段类型 ...

  2. Locust性能测试3--参数化、数据依赖

    场景链路压测的时候通常都是按照用户实际使用流程进行压测,同接口自动化一样,一定会涉及到数据依赖的问题 1.举例 Django后台通常需要csrf验证,而一般csrftoken需要通过get接口获得 f ...

  3. google protocol buffer——protobuf的使用特性及编码原理

    这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 在上一篇文章中,我们展示了 ...

  4. Redis入门--进阶详解

    Redis NoSql入门和概述 入门概述 互联网时代背景下大机遇,为什么用nosql 1.单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付,在那个时候, ...

  5. 洛谷 P4284 [SHOI2014]概率充电器 概率与期望+换根DP

    洛谷 P4284 [SHOI2014]概率充电器 概率与期望+换根DP 题目描述 著名的电子产品品牌\(SHOI\) 刚刚发布了引领世界潮流的下一代电子产品-- 概率充电器: "采用全新纳米 ...

  6. js实现树级递归,通过js生成tree树形菜单(递归算法)

    方法封装: /** * 数据转换为树形(递归),示例:toTreeByRecursion(source, 'id', 'parentId', null, 'children') * @param {A ...

  7. C++ int与char[]的相互转换

    C++ int与char[]的相互转换 一.itoa函数与atio函数①把int类型数字转成char类型,可以使用itoa函数. itoa函数原型: char*itoa(int value,char* ...

  8. Laravel Facade原理及使用

    Laravel Facade原理及使用 laravel过于庞大,加之笔者水平有限,所以后面的源码解读会按模块功能介绍,希望能帮大家稍微捋顺下思路,即使能够帮助大家回顾几个函数也好.如发现错误,还望指正 ...

  9. ugui 自定义字体

    Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...

  10. 《搭建个人Leanote云笔记本》

    体验实验室简介 阿里云开发者实验室,提供免费阿里云资源,丰富的云计算应用场景, Step by Step 完成云产品的体验 教程介绍 本教程将介绍如何搭建个人Leanote云笔记本. 场景体验 阿里云 ...