public static String strIndex = AppConfig
.get("SERVICE.PATH.FILE.LUCENCEINDEX"); //D:/index/
public static final String EMPUSERBASE = "empuserbase"; //文件夹名称
/**
* @see 活动索引建立
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void appendActivesIndex() throws Exception {
logger.info("活动搜索建立索引开始");
long startTime = System.currentTimeMillis();
IndexWriter indexWriter = null;
try {
indexWriter = new IndexWriter(FSDirectory.open(new File(
strIndex + EMPUSERBASE )),
new StandardAnalyzer(Version.LUCENE_CURRENT), true, IndexWriter.MaxFieldLength.LIMITED);
indexWriter.setUseCompoundFile(false);
} catch (Exception e) {
logger.info(e.getMessage(), e);
throw e;
}
List appList = empuserDao.findByList();
for (int i = 0; null != appList && i < appList.size(); i++) {
try {
Document doc = new Document();
doc.add(getField(Constants.ID,
((Map) appList.get(i)).get("ID"), false));// 活动ID
doc.add(getField(Constants.USERCODE, ((Map) appList.get(i))
.get("USERCODE"), false));
doc.add(getField(Constants.NICKNAME, ((Map) appList.get(i))
.get("NICKNAME"), true));
doc.add(getField(Constants.CREATETIME,
((Map) appList.get(i)).get("CREATETIME"), false));// 创建时间
doc.add(new Field(Constants.TOTALDATA, "1", Field.Store.YES,
Field.Index.NOT_ANALYZED));// 数据标识符
indexWriter.addDocument(doc);
} catch (Exception e) {
logger.info(e.getMessage(), e);
continue;
}
}
try {
indexWriter.optimize();
indexWriter.close();
} catch (Exception e) {
logger.info(e.getMessage(), e);
return;
}
LuceneUtils.setEppendActivityPathDirectory(null);
LuceneUtils.setEppendActivitySearcher(null);
long end = System.currentTimeMillis();
logger.info("代理搜索建立索引结束");
logger.info("代理搜索建立索引结束" + (end - startTime) + "ms");
}
/**
* @see 生成Field对象,放在Document里面
* @param String
* @return Field
*/
private Field getField(String fieldName, Object obj, Boolean flag) {
if (flag) {
// 需要分词的情况
return new Field(fieldName, obj == null ? "" : obj.toString(),
Field.Store.YES, Field.Index.ANALYZED);
} else {
// 不需要分词的情况
return new Field(fieldName, obj == null ? "" : obj.toString(),
Field.Store.YES, Field.Index.NOT_ANALYZED);
}
}
分享到:
相关推荐
### 数据库索引创建建议 #### 一、深入理解索引结构 索引在数据库管理中扮演着极其重要的角色,特别是在处理大量数据时。合理的索引设计能够显著提高查询性能,减少系统的响应时间。本文主要探讨数据库中的两种...
### Oracle索引创建详解 #### 一、Oracle索引的重要性及基本概念 在数据库系统中,索引是一种用于提高数据检索速度的数据结构。对于大型数据库系统而言,索引的合理设计与使用对于提升查询性能至关重要。Oracle...
Oracle数据库中的索引是提升查询性能的关键工具,它通过创建数据结构使得数据的查找、排序和连接操作更为高效。在“湖南电信Oracle培训之索引创建.ppt”中,我们可推断出讨论的重点是如何在Oracle数据库中创建和理解...
《深入理解Lucene索引建立过程》 Lucene作为一个强大的全文搜索引擎库,其核心功能在于高效地建立和查询索引。本文将详细解析Lucene如何将各种类型的数据组织成索引,以及索引创建的具体步骤。 首先,我们要理解...
代码复制粘贴 改下里面的参数 就可以用 而且参数 也有说明 简单易懂
例如,为了方便按创建时间和订单状态进行查询,可以在`ds_order`表中为`create_time`和`order_state`创建组合索引。 ```sql CREATE INDEX state_create_time_index ON ds_order(create_time, order_state); ``` ...
在给定的文档“索引创建方法案例.doc”中,主要讨论了一个特定的查询场景,涉及到如何通过创建合适的索引来提高针对时间范围和级别的查询效率。以下是基于这个场景的详细知识点解释: 首先,我们要理解查询的需求。...
《WEBHR9.0索引建立帮助文档》是针对WEBHR9.0系统中数据库索引建立的详细指导资料,旨在提升系统查询效率并优化数据库性能。文档主要涵盖索引的基本概念、创建原则以及针对WEBHR各业务模块的索引建议。 一、索引...
它通过分词技术建立索引,提高搜索效率。然而,全文索引的使用受到MySQL版本、存储引擎和字段类型的限制。例如,MySQL5.6之前,全文索引仅限于MyISAM引擎,而5.6之后的InnoDB引擎也开始支持。 除了创建索引,索引...
sql学习 索引建立开销_建索引过程会产生全表锁.sql
SQLserver索引创建语句
实验的目的是理解和熟练掌握索引的创建、管理和维护,包括单列索引、多列索引、唯一性索引以及全文索引的使用。通过这些操作,可以提高数据库查询的效率,优化数据访问性能。同时,了解不同存储引擎对索引的支持情况...
【索引创建与使用】是数据库管理中的重要概念,尤其对于提升数据检索效率至关重要。索引是一种特殊的数据结构,能够帮助数据库系统快速找到数据行,类似于书籍的目录,使得查找特定信息更为便捷。 5.1 索引概述中...
Lucene的核心功能分为两个部分:建立索引(Indexing)和执行查询(Searching)。本文将重点介绍如何使用Lucene创建索引以及如何基于这些索引进行高效的搜索。 #### 二、创建索引 ##### 2.1 准备工作 在开始之前,...
"基于KD树与八叉树索引相结合的LiDAR点云数据索引建立方法" 本摘要主要介绍了基于KD树与八叉树索引相结合的LiDAR点云数据索引建立方法的毕业设计论文。该论文主要研究了基于KD树与八叉树索引相结合的LiDAR点云数据...
### Oracle在线建立超大表的索引 #### 需求背景 在Oracle数据库中,为含有千万级别记录的大表创建索引是一项挑战性任务,尤其是对于那些处于高并发在线生产环境中的表。本文将详细介绍如何为一个核心大表(INFO_...
基于Elasticsearch实现空间索引创建、空间范围查询, 1 创建索引集合接口 filePath:传入待建索引的SHP文件路径,预先将SHP文件拷贝至相应路径下; indexName:待建索引集合名称; indexConfig:待建索引集合的字段...
### Lucene3.0创建索引 在Lucene3.0中创建索引是一个关键功能,可以帮助用户快速地检索和管理大量的文本数据。本篇文章将详细介绍如何使用Lucene3.0来创建索引,并通过一个具体的例子来演示整个过程。 #### 一、...