- 浏览: 1068687 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
1.Lucene的Document
Document类似于数据库中的一条数据,Lucene是通过Document来跟各种物理文件或数据库文件通信的。
2.Lucene的Field
Field相当于数据库中一条数据的某个字段,我们可以直接通过FIELD创建一个该类型的对象。
他们直接的调用关系:
Document doc = new Document();
Field f1 = new Field("name1","value1",Field.Store.YES,Field.Index.TOKENIZED);
doc.add(f1);
Field的各个属性:
Store.NO:表示Field不需要存储。
Store.YES:表示Field需要存储。
Store.COMPRESS:表示以压缩的方式来保存field的值。
Index有4个静态属性:
1.Index.NO:表示该Field不需要索引,也就是用户不需要去查找改field的值。
2.Index.TOKENIZED:表示该Field先被分词再索引。
3.Index.UN_TOKENIZED:表示不对该field进行分词,但要对他进行索引,也就是该field会被用户查找。
4.Index.NO_NORMS:表示对该FIELD进行索引,但是不使用analyzer,同时禁止他参加评分,主要是为了减少内存的消耗。
用户构建完document.那么就要开始建立索引了。采用indexwriter.
例如:
Analyzer luceneAnalyzer = new StandardAnalyzer();
IndexWriter writer = new IndexWriter(file,luceneAnalyzer,true);
他有三个构造函数:
public IndexWriter(String path,Analyzer a,boolean create)
public IndexWriter(File path,Analyzer a,boolean create)
public IndexWriter(Directory path,Analyzer a,boolean create)
这三个构造函数除了第一个参数不一样以后,其他都一样,表示索引的位置。第二个参数是一个ANALYZER对象,主要负责对各种输入数据源进行分析,包括过滤,分词等多种功能。第三个参数是一个BOOLEAN值,含义是:在由第一个参数所指定的路径处,删除原目录的所有内容重新构建索引,或是在其中已经存在的索引上追加新的DOCUMENT.
IndexWriter构建索引的流程:
1.初始化一个分析器对象,作为参数传入到writer中
2.传入建立索引的路径,即用户希望将索引文件存放的地方。
3.为该目录上锁。
4.判断用户希望把该索引目录下的原来的内容删去吗?
如果是:创建新的SEGMENT文件,并写入版本号,修改次数等信息。
如果否:读取原来的SEGMENT文件,读出版本号信息。
5.对象初始化完毕,通过writer.addDocument(doc);开始往指定目录写索引。
注意点:
1.在使用addDocument方法以后,一定要使用IndexWriter的CLOSE方法来关闭索引器,使所有的IO缓存中的数据都写入到磁盘中,关闭各种流。这样才能最终完成索引的创建。
2.限制每个FIELD中的词条数量。
对于建立的索引,有可能将很长的文本段都写入到FIELD中,然后作为索引进行存储,如果存入数据量过大,会抛出OUTOFMEMORY的异常。因此可以调用
public void setMaxFieldLength(int maxFieldLength)
例子:
writer.addDocument(doc);
writer.setMaxFieldLength(100000);
writer.addDocument(doc2);
当调用了该方法以后,LUCENE最多可以为FIELD内的10000个词条建立索引(如果不设置,默认为10000个。)
Document类似于数据库中的一条数据,Lucene是通过Document来跟各种物理文件或数据库文件通信的。
2.Lucene的Field
Field相当于数据库中一条数据的某个字段,我们可以直接通过FIELD创建一个该类型的对象。
他们直接的调用关系:
Document doc = new Document();
Field f1 = new Field("name1","value1",Field.Store.YES,Field.Index.TOKENIZED);
doc.add(f1);
Field的各个属性:
Store.NO:表示Field不需要存储。
Store.YES:表示Field需要存储。
Store.COMPRESS:表示以压缩的方式来保存field的值。
Index有4个静态属性:
1.Index.NO:表示该Field不需要索引,也就是用户不需要去查找改field的值。
2.Index.TOKENIZED:表示该Field先被分词再索引。
3.Index.UN_TOKENIZED:表示不对该field进行分词,但要对他进行索引,也就是该field会被用户查找。
4.Index.NO_NORMS:表示对该FIELD进行索引,但是不使用analyzer,同时禁止他参加评分,主要是为了减少内存的消耗。
用户构建完document.那么就要开始建立索引了。采用indexwriter.
例如:
Analyzer luceneAnalyzer = new StandardAnalyzer();
IndexWriter writer = new IndexWriter(file,luceneAnalyzer,true);
他有三个构造函数:
public IndexWriter(String path,Analyzer a,boolean create)
public IndexWriter(File path,Analyzer a,boolean create)
public IndexWriter(Directory path,Analyzer a,boolean create)
这三个构造函数除了第一个参数不一样以后,其他都一样,表示索引的位置。第二个参数是一个ANALYZER对象,主要负责对各种输入数据源进行分析,包括过滤,分词等多种功能。第三个参数是一个BOOLEAN值,含义是:在由第一个参数所指定的路径处,删除原目录的所有内容重新构建索引,或是在其中已经存在的索引上追加新的DOCUMENT.
IndexWriter构建索引的流程:
1.初始化一个分析器对象,作为参数传入到writer中
2.传入建立索引的路径,即用户希望将索引文件存放的地方。
3.为该目录上锁。
4.判断用户希望把该索引目录下的原来的内容删去吗?
如果是:创建新的SEGMENT文件,并写入版本号,修改次数等信息。
如果否:读取原来的SEGMENT文件,读出版本号信息。
5.对象初始化完毕,通过writer.addDocument(doc);开始往指定目录写索引。
注意点:
1.在使用addDocument方法以后,一定要使用IndexWriter的CLOSE方法来关闭索引器,使所有的IO缓存中的数据都写入到磁盘中,关闭各种流。这样才能最终完成索引的创建。
2.限制每个FIELD中的词条数量。
对于建立的索引,有可能将很长的文本段都写入到FIELD中,然后作为索引进行存储,如果存入数据量过大,会抛出OUTOFMEMORY的异常。因此可以调用
public void setMaxFieldLength(int maxFieldLength)
例子:
writer.addDocument(doc);
writer.setMaxFieldLength(100000);
writer.addDocument(doc2);
当调用了该方法以后,LUCENE最多可以为FIELD内的10000个词条建立索引(如果不设置,默认为10000个。)
发表评论
-
使用Lucene-Spatial实现集成地理位置的全文检索
2015-05-27 17:33 1346Lucene通过Spatial包提供了对基于地理位置的 ... -
Lucene4.10.2开发之高亮显示
2015-05-05 23:13 603转载请注明,原创地址,谢谢配合! http://qindo ... -
bobo-browse
2011-02-10 10:22 2812bobo-browse 是一款用java写的lucene扩展组 ... -
Lucene 2 通过updateDocument更新索引
2010-12-30 15:47 2067package com.lucene; i ... -
Lucene 3建立索引和查询索引详解
2010-12-22 23:02 1849public void index() throws Corr ... -
Lucene3 查询索引
2010-12-22 22:46 1780package lucene3; import java.i ... -
Lucene3 建立索引
2010-12-22 22:25 1410Lucene3在建立索引的API上有比较大的变化。直接上程序: ... -
Lucene 3.0的简单解析及变化
2010-12-22 21:59 1149一、 概述 Lucene3 ... -
Lucene分词器之庖丁解牛
2010-12-22 07:47 3500注意:这里配置环境变量要重新启动系统后生效 我现在测试 ... -
Lucene从结果中取出数据
2010-12-21 20:23 1238有些应用,比如我们首先要搜索一个Person的索引文件,然后通 ... -
Lucene过滤器
2010-12-21 20:05 3801有的应用有些要求,对于某类型的内容即使满足条件了,但是也不能被 ... -
Lucene对于短语匹配查询的用法
2010-12-21 17:41 1387通常对于ID查询或者是比较确定字段内容的查询,我们就用: T ... -
Lucene 对所查的结果进行排序
2010-12-20 23:01 1229前面介绍完查询以后,现在要对查询结果进行排序的显示。 代码: ... -
Lucene 搜索方法(模糊搜索)
2010-12-20 11:54 3523LUCENE提供了一种模糊搜 ... -
Lucene 搜索方法(多短语搜索)
2010-12-20 11:42 1199短语搜索解决了短语搜索的问题,在很多情况下,用户输入某个关键字 ... -
Lucene 搜索方法(短语搜索)
2010-12-20 11:15 1832用户在搜索的时候,更多的情况是输入一个以上的关键字,这些关键字 ... -
Lucene 搜索方法(前缀搜索)
2010-12-20 10:27 1892PrefixQuery是一种前缀搜索,在检索的时候,常常需要进 ... -
Lucene 的索引读取工具(IndexReader)
2010-12-19 23:00 1619Lucene有一个很重要的工具IndexReader负责对索引 ... -
Lucene 搜索方法(范围搜索)
2010-12-19 22:54 1299在某些情况下,用户需要查找一定范围内的文档,比如时间,ID等。 ... -
Lucene 搜索方法(布尔搜索)
2010-12-19 22:04 1626布尔搜索: 布尔查询的对象中,包含一个子句的集合。各种子句间都 ...
相关推荐
**Lucene API详解** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个高级的、可扩展的搜索程序开发框架,让开发者能够轻松地在应用程序中实现...
**Lucene API详解** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中最广泛使用的搜索引擎库。它提供了强大的文本分析、索引和搜索功能,被广泛应用于各种需要全文检索的场景,如...
二、Lucene 6.6.2 API详解 1. 文档(Document):Lucene中的基本单元,用于存储单个文档的信息,如字段(Field)等。 2. 字段(Field):文档的组成部分,具有名称和值,可以设置为可搜索、可存储或可索引。 3. 索引...
4. **Lucene API详解** 5. **Lucene在信息检索中的作用** 6. **Lucene的定制与扩展** 7. **Lucene的性能优化** 8. **Lucene的社区支持** #### 知识点详细解释 **1. Lucene简介与背景** _Lucene in Action, Second...
**Lucene API 文档详解** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,被广泛应用于各种搜索引擎的构建。在Java编程语言中,Lucene 提供了丰富的API来处理索引、搜索、分析文本等任务。这份文档...
三、Lucene API详解 Lucene的API设计简洁易用,主要分为以下几个部分: 1. **IndexWriter**:负责创建和更新索引,包括添加、删除和更新文档。 2. **IndexReader**:用于读取索引,提供搜索前的准备操作。 3. **...
**全文检索(Lucene)详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。它提供了一个简单但功能强大的API,用于在各种数据源中进行高效的全文检索。Lucene不仅用于网站搜索引擎,还广泛...
《Lucene 4.10.3 API CHM合集详解》 Apache Lucene是一个高性能、全文本搜索库,被广泛应用于各种搜索引擎的开发。这里的"lucene4.10.3的api的chm合集"是针对该版本的一个API文档集合,包含了多个模块的CHM...
- **Lucene API详解**:详细介绍了Lucene的核心API,包括文档对象、字段、索引器、搜索器等,并提供了大量实用的代码示例。 - **高级主题**:讨论了更高级的主题,如分布式搜索、高性能优化技巧、近实时搜索等。 - *...
**Lucene核心资源包与API详解** Lucene是一款开源全文搜索引擎库,由Apache软件基金会开发并维护。它为Java开发者提供了强大的文本搜索功能,被广泛应用于各种信息检索系统。本资源包包含了Lucene的核心资源及API,...
**Lucene 3.0 API 中文帮助文档详解** Lucene 是一个开源的全文检索库,由Apache软件基金会开发并维护。它提供了高级的文本搜索功能,被广泛应用于各种信息检索系统。本篇将深入探讨Lucene 3.0 API的中文帮助文档,...
2. **灵活性**:Lucene 的 API 设计允许开发者轻松地将各种数据源(如文件或数据库记录)映射到其索引结构中。 3. **可扩展性**:Lucene 提供了对查询分析器、排序和应用接口的自定义,以适应不同的需求。 4. **语言...
它提供了一个简单但功能强大的API,用于在各种应用中实现全文索引和搜索。以下是对Lucene常用功能的详细介绍: 1. **创建索引** 创建索引是Lucene工作的第一步。通过`Directory`接口,如`FSDirectory`,Lucene可以...
SpringBoot与Lucene集成案例详解 本文将详细介绍如何将SpringBoot与Lucene集成,以实现站内搜索系统。 Lucene是一个高性能的全文检索引擎,它可以帮助我们快速地检索大量的文本数据。 一、案例介绍 在本案例中,...
**Lucene 3.0英文API详解** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。它提供了一个简单且可扩展的接口,用于在各种应用程序中实现搜索功能。Lucene 3.0是该库的一个重要版本,引入了许多...
### 二、API详解 1. **Analyzer**: 这是文本分析的接口,定义了如何将输入文本拆分为令牌(Tokens)。Lucene 2.9.0 包含了多种预定义的分析器,如 `StandardAnalyzer`(适用于英语)和 `ChineseAnalyzer`(适用于...
**Lucene分词与查询详解** Lucene是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发中。它提供了一套强大的API,用于索引文本数据,并执行复杂的查询操作。在深入理解Lucene的分词与查询机制之前,我们...
1. **Lucene API详解**:笔记可能会涵盖如何创建、更新和删除索引,以及如何构造和执行查询。 2. **Analyzer的使用**:包括标准分词器(StandardAnalyzer)、中文分词器(SmartChineseAnalyzer)和其他自定义分词器...
《Lucene 5.x与3.6.0版本差异详解》 Lucene作为一个强大的全文搜索引擎库,其每个版本的更新都带来了一系列的变化和优化。本文将深入探讨Lucene 5.x与Lucene 3.6.0之间的主要差异,帮助开发者理解新版本的功能改进...