前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段、创建索引文档,给字段加权以及保存文档到索引器目录

luncene5.5.3集合jar包下载地址:http://download.csdn.net/detail/eguid_1/9677589

一、创建索引文档

一个索引目录可以放多个索引文档,每个索引文档多个索引字段组成,索引字段由要索引的字段名字段内容以及权重值组成

1、构建索引字段并加权

/*** 创建索引字段* @param boost*            -权重值* @param fieldName*            - 字段名* @param statement*            -内容* @param fieldType*            -字段存储类型* @return*/public Field createField(String fieldName, String statement, FieldType fieldType, Float boost) {Field field = null;if (fieldName != null && statement != null && fieldType != null) {field = new Field(fieldName, statement, fieldType);if (boost != null) {field.setBoost(boost);}}return field;}/*** 创建索引字段* * @param fieldName* @param reader* @param type* @param boost* @return*/public Field createField(String fieldName, Reader reader, FieldType type, Float boost) {Field field = null;if (fieldName != null && reader != null) {field = new Field(fieldName, reader, type);if (boost != null) {field.setBoost(boost);}}return field;}/*** 创建索引字段* * @param fieldName* @param tokenStream* @param type* @param boost* @return*/public Field createField(String fieldName, TokenStream tokenStream, FieldType type, Float boost) {Field field = null;if (fieldName != null && tokenStream != null) {field = new Field(fieldName, tokenStream, type);if (boost != null) {field.setBoost(boost);}}return field;}/*** 创建索引字段* * @param fieldName* @param value* @param type* @param boost* @return*/public Field createField(String fieldName, byte[] value, FieldType type, Float boost) {return value != null ? createField(fieldName, value, 0, value.length, type, boost) : null;}/*** 创建索引字段* * @param fieldName* @param value* @param offset* @param length* @param type* @param boost* @return*/public Field createField(String fieldName, byte[] value, int offset, int length, FieldType type, Float boost) {Field field = null;if (fieldName != null && value != null && type != null) {field = new Field(fieldName, value, offset, length, type);if (boost != null) {field.setBoost(boost);}}return field;}

2、创建索引文档

/*** 创建索引文档* * @return*/public Document createDocument() {return new Document();}

二、添加字段到索引文档

  /*** 把字段存放到索引文档* * @param document* @param field* @return*/public Document addFiled(Document document, Field field) {if (field != null) {document.add(field);}return document;}/*** 批量存放字段到索引文档* @param document* @param fields* @return*/public Document addFiledList(Document document, Field... fields) {if (fields != null && fields.length > 0) {for (Field field : fields) {document.add(field);}}return document;}

三、给索引器添加索引文档

使用上一章中的方法把生成的文档添加到索引中

事实上我们常把索引文档根据不同分类保存到不同的索引目录,再搜索时可以根据不同索引目录进行搜索。

例如:

 Analyzer analyzer=createAnalyzer(false);Directory dir=createDirectory(null, "d:","dir","search");IndexWriterConfig conf=createIndexConf(analyzer, OpenMode.CREATE_OR_APPEND, false);IndexWriter index=createIndex(dir, conf);//创建一个文档Document doc=createDocument();String[] states = new String[] {"欢迎来到eguid的博客", "欢迎大家来到eguid的技术博客", "欢迎大家来到eguid的技术博客,很开心能和大家一起分享开源技术"};//创建字段Field[] fields=createFields("字段名", states, TextField.TYPE_STORED, 1.1f);//批量增加字段到索引文档addFiledList(doc, fields);//把索引文档保存到索引器index.addDocument(doc);

这样就把添加了一个索引,想要搜索这个索引,那么接下来让我们创建搜索器吧

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

转载于:https://www.cnblogs.com/eguid/p/6821574.html

lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3...相关推荐

  1. PHP 生成 ppt,PHP创建PowerPoint2007文档的方法

    本文实例讲述了PHP创建PowerPoint2007文档的方法.分享给大家供大家参考,具体如下: 今天早上从订阅的 Zend DevZone 看到篇很有意思的文章. 试了一下. 果然很又意思, 分享给 ...

  2. ElasticSearch入门系列(三)文档,索引,搜索和聚合

    一.文档 在实际使用中的对象往往拥有复杂的数据结构 Elasticsearch是面向文档的,这意味着他可以存储整个对象或文档,然而他不仅仅是存储,还会索引每个文档的内容使之可以被搜索,在Elastic ...

  3. 分布式搜索引擎01-elasticsearch-介绍、倒排索引原理、概念(文档和字段,索引和映射)、安装、索引库crud、文档crud、RestAPI(java代码实现es的crud)

    文章目录 分布式搜索引擎01 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 1.1.2.ELK技术栈 1.1.3.elasticse ...

  4. 嘴对嘴系列之es核心基础概念之文档和索引

    写在前面 通过之前的几篇安装指南,我们已经把Elasticsearch的集群搭建起来了,并且也使用了Kibana进行交互式的操作.在操作中,我们发现Elasticsearch提供了基于RESTFUL风 ...

  5. lucene(全文搜索)_建立索引_根据关键字全文搜索_源码下载

    项目结构: 效果图: 需要建立索引的文件(我们需要从中查找出关键字的文档) 建立好的所有文件 搜索关键字"lucene"信息 大家是不是也想亲自动手尝试一下呢... ======= ...

  6. mysql索引的创建与管理实验_mysql索引创建与管理笔记

    什么是索引 索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构. 其作用主要在于提高查询的速度,降低数据库系统的性能开销. 通过索引,查询数据不必读完记录的全部信息进行匹配,而是只查询索 ...

  7. ElasticSearch教程——创建索引、类型、文档

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 介绍 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库.事实上,我们的数据被存储和索 ...

  8. ES篇:ElasticSearch教程——创建索引、类型、文档

    ES知识汇总:https://blog.csdn.net/gwd1154978352/article/details/82781731 介绍 索引是ElasticSearch存放数据的地方,可以理解为 ...

  9. Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

    了解了主键索引的底层原理,主键索引其实就是根据主键字段建立相关的数据结构(B+树),此后在使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点.除了主键索引外,普通索引和唯一键索引也是如此, ...

最新文章

  1. 让我们带着感恩的心生活
  2. 昨天在公司加班,上午好像就是弄一个ftp的linux服务问题
  3. 专访清华陈文光:搞好CS基础建设再寻思AI专业,读博与否?看个人能力
  4. 分布式事务——消息最终一致性方案
  5. unittest单元测试框架—加载测试用例的3种方法以及测试报告存储管理
  6. lm358数据手册_如何阅读运放的数据手册(1)查找数据手册
  7. 区块链分布式账本Hyperledger Fabric介绍
  8. GO语言-基础语法:循环
  9. python怎么发图文_用Python发一封图文并茂的邮件
  10. c语言将数据写不入文件,求大神看看为什么不能将数据写入文件
  11. java怎么让窗口居中显示图片_Java_Swing中让窗口居中显示的方法(三种方法)
  12. php外壳函数,php 方法笔记
  13. 编写javascript、Jquery的String.format();
  14. 洛谷 p1434 滑雪【记忆化搜索】
  15. 拓端tecdat|tableau的骑行路线地理数据可视化
  16. ARM指令计算机器码,ARM中几种把BL指令转化为机器码算法
  17. 项目管理四要素是什么?
  18. phoenix-hbase 服务频繁挂掉问题排查
  19. CentOS7 建立静态 IP(eth0)
  20. js 输出为underfined

热门文章

  1. freetextbox java_FreeTextBox3.2.2下载及使用详解(图)
  2. 5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)
  3. 用python编制一个的类_常见面试题整理--Python概念篇
  4. 两数之和Python解法
  5. springboot使用imageio返回图片_SpringBoot 二维码生成(复制即用)
  6. access2003安装包百度云_阿里云服务器安装JDK与配置环境详细步骤
  7. vs2013怎么清理解决方案_厕所漏水怎么办?厕所免拆砖防水维修方案
  8. 锁相环PLL/MMCM的使用
  9. 读空气java_空气质量指数查询示例代码
  10. mysql取最大一条数据,mysql取出表中,某字段值最大的一条纪录,sql语句