- 浏览: 316262 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
索引建立步骤
1、创建Directory
Directory directory = FSDirectory.open(new File("D:/test/index01"));
2、创建Writer
IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35,new StandardAnalyzer(Version.LUCENE_35)));
3、创建文档并且添加索引
文档和域的概念很重要
文档相当于表中的每一条记录,域相当于表中每一个字段
Document document = null;
Collection<File> files = FileUtils.listFiles(new File("D:/test/lucene"),FileFileFilter.FILE, null);
for (File file : files) {
document = new Document();
document.add
(new Field
("content
", new FileReader(file)));
//域名可以重复使用,在 使用 的时候 这样取出,doc.getValues("content")[1]
document.add
(new Field
("content
", "可以再次放置一些内容");
document.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
document.add(new Field("path", file.getAbsolutePath(), Field.Store.YES,Field.Index.NOT_ANALYZED));//是否存储路径,是否进行分词
writer.addDocument
(document);
}
4、查询索引的基本信息
IndexReader reader = IndexReader.open(directory);
//通过reader可以有效的获取到文档的数量
System.out.println("numDocs:" + reader.numDocs()
);//可以使用的文档数量
System.out.println("maxDocs:" + reader.maxDoc()
);//所有的文档数量,包括被删除的文档
System.out.println("deleteDocs:" + reader.numDeletedDocs()
);//被删除的文档数量
reader.close();
5、删除索引
//参数是一个选项,可以是一个Query,也可以是一个term,term是一个精确查找的值
//此时删除的文档并不会被完全删除,而是存储在一个回收站中的,可以恢复
writer.deleteDocuments
(new Term
("id", "1"));
writer.commit();
6、恢复删除
try {
IndexReader reader = IndexReader.open(directory, false);
//恢复时,必须把IndexReader的只读(readOnly)设置为false
reader.undeleteAll
();
reader.close();
7、强制删除,相当于删除回收站里面的,彻底删除了
writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
writer.forceMergeDeletes
();
8、优化和合并索引
writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35, new StandardAnalyzer(Version.LUCENE_35)));
//会将索引合并为2段,这两段中的被删除的数据会被清空
//特别注意:此处Lucene在3.5之后不建议使用,因为会消耗大量的开销,
//Lucene会根据情况自动处理的
writer.forceMerge
(2);
9、更新索引
writer = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_35,
new StandardAnalyzer(Version.LUCENE_35)));
/*
* Lucene并没有提供更新,这里的更新操作其实是如下两个操作的合集
* 先删除之后再添加
*/
Document doc = new Document();
doc.add(new Field("id", "11", Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
doc.add(new Field("email", emails[0], Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("content", contents[0], Field.Store.NO, Field.Index.ANALYZED));
doc .add(new Field("name", names[0], Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
writer.updateDocument(new Term("id", "1"), doc);
//会把原来id=1的那个文档删掉,新增id=11的那个文档
发表评论
-
二十七、Luence在项目中运用
2012-12-26 15:03 1099public class LuceneContext { ... -
二十六、solr的基本使用
2012-12-26 10:26 963public class Message { p ... -
二十五、solr与tomcat的整合
2012-12-25 13:52 10541、solr是全文搜索服务器,专门用户管理索引的。 2 ... -
二十四、通过NRTManager和SearchManager实现近实时搜索
2012-12-21 11:35 1350是否进行实时搜索 实时搜索(近实时搜索) ... -
二十三、高亮显示
2012-12-20 09:24 1012public void lighter01() { ... -
二十二、Tika
2012-12-20 09:24 967Tika是2008年才产生的一个apache的项目,主要用于打 ... -
二十一、Luke
2012-12-20 09:24 815luke是一个查询索引的工具,使用时必须注意:版本要与luce ... -
二十、自定义过滤器
2012-12-20 09:23 876有的应用有些要求,对于某类型的内容即使满足条件了,但是也不 ... -
十七、搜索过滤
2012-12-20 09:23 639public void searcherByFilter(St ... -
十九、自定义QueryParser
2012-12-19 16:28 1225原因: 1、对于某些Quer ... -
十八、自定义评分
2012-12-19 16:18 792public class MyCustomScoreProvi ... -
十六、搜索排序
2012-12-19 12:14 1032public void searcherBySort(Stri ... -
十五、实现简单同义词分词器
2012-12-19 11:41 1260public interface SamewordContex ... -
十四、中文分词器
2012-11-28 13:49 865中文分词器 : Paoding:庖丁解牛分词器。 ... -
十三、自定义Stop分词器
2012-11-28 13:42 765import java.io.Reader; impor ... -
十二、Attribute
2012-11-28 13:20 828Attribute : ... -
十一、分词器的核心类
2012-11-28 13:12 908Analyzer : SimpleAnalyz ... -
十、分页搜索
2012-11-27 17:30 881分页查询有两种实现方式: 1、再查询 ... -
九、Queryparser
2012-11-27 17:24 1003Mike 默认域包含mike Mi ... -
八、其他搜索Query
2012-11-27 10:30 666TermRangeQuery : 字母范围搜索 ...
相关推荐
Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中
下面我们将详细介绍在线创建索引和重组索引的步骤和注意事项。 一、在线创建索引 在线创建索引可以提高查询性能,但是需要评估该索引的必要性和可能对现有语句的影响。如果不是紧急的大索引,最好在维护时间操作。...
创建文件索引的过程通常包括以下步骤: 1. **分析数据**:首先,系统会分析文件内容,确定哪些字段适合用于建立索引。这些字段通常是频繁查询的或者对性能影响较大的。 2. **选择索引类型**:根据数据特性和需求,...
SQL SERVER 中建立索引的步骤 在 SQL SERVER 中,建立索引是一个非常重要的步骤,它可以大大提高数据库的查询效率。索引可以被看作是一个目录,帮助计算机快速地读取到我们查询的数据。在实际操作中,我们可以通过...
本实验报告总结了视图和索引的创建、修改、使用等知识点,并结合实验步骤和结果,展示了视图和索引在数据库管理系统中的应用。 实验结论 通过本实验,我们掌握了视图和索引的创建、修改、使用等技能,了解了视图和...
根据提供的描述,创建索引的主要步骤包括: 1. **指定源目录**:首先确定要索引的文本文件所在的位置。 2. **设置目标索引目录**:定义存放生成索引文件的路径。 3. **初始化`IndexWriter`对象**:用于控制索引的...
Oracle 中创建空间索引的实现步骤和注意事项 空间索引是 Oracle 中的一种特殊索引类型,用于加速空间数据的查询和检索。空间索引可以大大提高空间数据的查询效率,特别是在处理大量空间数据时。本文将详细介绍如何...
总的来说,理解和应用"SDE三级索引设置程序"是提升GIS应用程序性能的关键步骤,特别是在处理大量空间数据时。通过有效地利用索引,可以显著减少查询时间,提高用户体验,并减轻服务器负载。对于ArcGIS Engine的...
### 实验三:索引及数据操作 #### 实验目的 本实验旨在通过实践操作让学生熟练掌握...通过完成上述实验步骤,学生可以全面了解索引的创建和删除、SQL语句的应用以及数据的操作方法,为今后的学习打下坚实的基础。
本教程主要探讨的是如何利用Lucene进行索引优化,特别是通过多线程和处理多个目录来提高索引创建效率。 首先,我们需要理解Lucene的索引原理。Lucene将文档分解为词项(tokens),并对每个词项创建倒排索引。倒排...
### Oracle在线建立超大表的索引 #### 需求背景 在Oracle数据库中,为含有千万级别记录的大表创建索引是一项挑战性任务,尤其是对于那些处于高并发在线生产环境中的表。本文将详细介绍如何为一个核心大表(INFO_...
在Oracle数据库管理系统中,创建表和唯一索引是数据库设计中的关键步骤,它们对于数据的组织、查询效率和数据完整性至关重要。以下将详细介绍如何创建学员信息表,创建唯一索引,以及如何修改表来添加主键和检查约束...
### 创建数据库表与索引实验知识点总结 #### 一、实验背景与目标 **实验标题:** 创建数据库表与索引实验 **实验描述:** 本次实验旨在让学生掌握如何在数据库中创建表和索引,同时理解并实践数据完整性的重要性...
#### 三、创建索引的策略与步骤 基于上述信息,我们可以制定出创建索引的具体策略。 1. **确定索引列**:选择频繁出现在查询条件中的列作为索引候选。 2. **评估索引类型**:根据表的特性决定是创建B树索引还是其他...
本文将详细介绍如何利用Lucene对XML文档进行索引建立的过程,并通过示例代码具体阐述其实现方法。 #### 二、基础知识 1. **Lucene简介** - Lucene是一个开源的全文搜索引擎库,能够帮助开发者构建应用程序内的搜索...
通过API提供的方法,你可以列举出数据表的所有字段,并判断哪些字段适合建立索引。通常,那些经常用于查询条件的字段,例如ID、时间戳或地理位置等,是创建索引的理想选择。 接下来,我们来看如何创建字段索引。在...
#### 三、创建格网索引要素的步骤详解 1. **启动ArcGIS软件**:首先需要打开ArcGIS软件,并确保已加载相关地图数据。 2. **打开格网索引要素地理处理工具**:可以通过搜索或在工具箱中找到该工具。 3. **指定输出...
创建字段索引的过程通常包括以下步骤: 1. **初始化工作环境**:首先,你需要导入SuperMap Objects .NET的相关库,并实例化必要的对象,如Workspace、Dataset、Table等,这将为你提供与数据交互的基础。 2. **选择...
在PostgreSQL和Oracle中创建空间索引是管理和优化地理空间数据的关键步骤。通过使用GIST或MDSYS.SPATIAL_INDEX这样的专用索引类型,可以极大地提升查询性能,尤其是在处理大规模空间数据集时。理解这些索引的创建...