- 浏览: 73468 次
文章分类
- 全部博客 (47)
- 合并两个表 (1)
- java (46)
- 获得一个节点对象的节点类型 (1)
- JSP 页面不能解析EL表达式。 (1)
- 数据库连接长时间空闲后 (1)
- 爆连接已经关闭的解决方法 (1)
- 设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示) (1)
- Hadoop的下一代mapreduce (1)
- 备忘css元素定位 (1)
- 第一次通宵 (1)
- 字符编码工具类 (1)
- Asset Pipeline in rails 3.1.0 (1)
- IT行业热点----我国IT飞速发展需关注6大问题 (1)
- Web Service实践之——开始XFire (1)
- 单片机C语言编程基础模板 (1)
- 中医养生顺口溜 (1)
- Property文件读取的Util类 (1)
- JEECMS (1)
- CheckStyle使用java.header文件的问题 (1)
- JUnit4测试代码示例 (1)
- JavaScript中三个弹出窗口 (1)
- About .Net Petshop (1)
- MapXtreme2004代码 在地图上新增加点图元 (1)
- 50个GMail的邀请权 想要的留下EMail (1)
- asp.net+Access简单企业站源码 (1)
- 局域网指定ip断网工具源码 (1)
- lucene索引和搜索过程中的核心类介绍 (1)
- poi 取消科学计数法 (1)
- centos相关 (1)
- java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered (1)
- Project configuration is not up-to-date with pom.xml. 问题解决 (1)
- js截取最后一个.的字符串(IP地址判断) (1)
- Android开发之《Android应用开发揭秘》UI事件汇总 (1)
- SSH through proxy to visit ssh.github.com (ZZ) (1)
- eclipse3.7 添加任务标记 (1)
- SQLServer2005和2008的分页技术比较 (1)
- 传智播客java基础加强ppt (1)
- Struts 标签疑难问题收集-乔乐共享 (1)
- mysql使用rand随机查询记录效率测试 (1)
- 按钮实现spinner (1)
- 线程循环 (1)
- Android相关工具地址 (1)
最新评论
-
543089122:
N年前的老掉牙的手段了,原理也就是ARP
局域网指定ip断网工具源码 -
lvwenwen:
...
Web Service实践之——开始XFire -
hz_grape:
程序员的人生
第一次通宵 -
faylai:
传说中的广告贴啊!!
设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示)
lucene索引和搜索过程中的核心类介绍
lucene是一个工具包,一个Java类库,是一个1M多的jar文件,并不是一个完整的搜索程序,Lucene只专注于文本的索引和搜索功能,它能够让应用程序在不需要了解复杂的索引和搜索的实现的情况下,通过调用简单封装API,为应用程序添加上搜索功能。
1.执行简单的索引过程需要用到以下几个类:IndexWriter Directory Analyzer Document Field
IndexWriter:(写索引)是索引过程的核心组件,这个类负责创建新的索引或者打开已有索引,以及向索引中添加,删除或者更新被索引的信息。可以把IndexWriter当作一个提供针对索引文件的写入操作,但不能用于读取或者搜索索引。IndexWriter需要开辟一定空间来存储索引,此功能可以由Directory完成.
Directory:用来描述Lucene索引的存放位置。它是一个抽象类,它的子类负责具体指定索引的存储路径,可以使用FSDirectory.open()方法来获取真实文件在文件系统中的存储路径。
Analyzer:IndexWriter不能直接索引文本,文本首先需要被分词成词汇单元,而Analyzer负责从被索引文本文件中提取词汇单元,并进行一些处理,比如说,剔出停用词(a, the ,this对搜索无意义的词),如果被索引内容不是纯文本文档,需要首先将其转换成文本文档格式。(索引本质上就是词汇单元到文件之间的映射,所以建立索引和搜索索引处理的都是词汇单元).
Document:用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。
Field:索引中每个文档都包含一个或者多个不同的域,这个域就是Field,而每个域都有一个域名和对应的域值。Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。
2.执行简单的搜索过程需要用到以下几个类:IndexSearch, Term, Query, TermQuery,TopDocs
IndexSearch:类用于搜索IndexWriter类创建的索引
TermQuery:是Lucene提供的最基本的查询类型,Query的子类,用来匹配指定域中包含特定项的文档。生成一个TermQuery对象由如下语句完成: TermQuery termQuery = new TermQuery(new Term(“fieldName”,”queryWord”)); 它的构造函数只接受一个参数,那就是一个Term对象。
Query:这是一个抽象类,它有多个实现,比如TermQuery, BooleanQuery, PrefixQuery. 这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。
Term:Term 是搜索的基本单位,一个Term对象有两个String类型的域组成。生成一个Term对象可以有如下一条语句来完成:Term term = new Term(“fieldName”,”queryWord”); 其中第一个参数代表了要在文档的哪一个Field上进行查找,第二个参数代表了要查询的关键词
TopDocs:用来保存搜索结果,是一个简单的指针容器,指针一般指向前N个排名的搜索结果.TopDocs会记录前N个结果中每个结果的int docID和浮点型分数。
发表评论
-
Android相关工具地址
2012-02-08 15:57 796SDK: http://developer.andr ... -
线程循环
2012-02-07 14:28 834@selector(xxxThread)方法以后,在方 ... -
按钮实现spinner
2012-02-03 12:43 902int cityID=0; //用于默认选择哪个 ... -
mysql使用rand随机查询记录效率测试
2012-02-03 09:24 756一直以为mysql随机查询几条数据,就用 SELECT ... -
Struts 标签疑难问题收集-乔乐共享
2012-02-02 15:14 876循环List:private List list; & ... -
传智播客java基础加强ppt
2012-01-31 16:13 1606<p>????? 如果想把java基础打牢 ... -
SQLServer2005和2008的分页技术比较
2012-01-31 15:53 1976<span style="fon ... -
eclipse3.7 添加任务标记
2012-01-31 15:23 2390<p>在编写程序时有一些工作要等到以后才做 ... -
SSH through proxy to visit ssh.github.com (ZZ)
2012-01-31 14:58 1921<p>Scenario:</p> ... -
Android开发之《Android应用开发揭秘》UI事件汇总
2012-01-11 14:43 1212<h1>Android开发之《Androi ... -
js截取最后一个.的字符串(IP地址判断)
2012-01-11 14:18 2270[size=small;] 由于我们的项目中需 ... -
Project configuration is not up-to-date with pom.xml. 问题解决
2012-01-11 13:09 2084<span>Project configu ... -
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered
2011-12-28 12:28 5510<span style="font-f ... -
centos相关
2011-12-28 11:34 842比较新的源 rpm -Uvh http://dow ... -
poi 取消科学计数法
2011-12-21 13:33 2233[size=medium;]<br>[/s ... -
局域网指定ip断网工具源码
2011-12-20 13:53 2053只适用于小型局域网 <br> <s ... -
asp.net+Access简单企业站源码
2011-12-20 12:04 3180<span style="font-f ... -
50个GMail的邀请权 想要的留下EMail
2011-12-15 13:34 763今天看到自己已经有50个GMail的邀请权了 想要的请 ... -
MapXtreme2004代码 在地图上新增加点图元
2011-12-15 13:29 808sender, System.EventArgs e ... -
About .Net Petshop
2011-12-14 19:29 730<span style="" ...
相关推荐
**Lucene索引和查询** Lucene是Apache软件基金会的开放源码全文搜索引擎库,它提供了文本检索的核心工具,使得开发者能够快速构建自己的搜索应用。本项目中的代码旨在展示如何利用Lucene对多个文件夹下的数据进行...
《深入理解Luke:洞察Lucene索引...通过分析Luke的源码,我们可以学习到如何操作和调试Lucene索引,这对于优化搜索算法、提高检索效率具有重大意义。同时,这也为自定义Lucene插件或者开发类似工具提供了基础和灵感。
总结,Lucene5 全文搜索 demo 展示了如何利用 Lucene 的核心组件创建和搜索索引。从索引的构建到查询的执行,每个步骤都涉及到对 Lucene API 的深入理解。通过学习这个示例,开发者可以进一步了解 Lucene 的工作原理...
**Lucene索引结构原理** ...通过以上这些组件和机制,Lucene能够提供高效、可扩展的全文搜索能力。开发者可以通过自定义Analyzer、调整段合并策略以及选择合适的压缩方法,来优化索引结构,以满足特定应用的需求。
《Lucene索引小示例解析》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。在Java编程环境中,Lucene被广泛应用于构建搜索功能,特别是对于大量文本数据的高效检索。本篇文章将通过一个简单的小...
Lucene优化是指对Lucene索引和搜索进行优化的过程。Lucene提供了多种优化方式,包括索引优化、搜索优化和缓存优化等。 在上面的代码中,我们使用了`optimize()`方法对索引进行优化。该方法将合并磁盘上的索引文件,...
在这个“lucene索引与搜索(含jar包)”中,我们有两个关键的 Java 文件——`Indexer.java` 和 `Searcher.java`,它们分别用于建立索引和执行搜索操作。 **1. Lucene 的工作原理** 在 Lucene 中,索引是一个预处理...
在开发过程中,有时会遇到需要查看二进制索引文件内容的情况,这时可以使用工具如jd-gui.exe(Java反编译器),虽然它主要用于查看Java字节码,但在某些情况下也可以辅助理解Lucene索引文件的组成。然而,由于Lucene...
Lucene.NET的核心组件包括Analyzer(分析器)、Document(文档)、Field(字段)、IndexWriter(索引写入器)和Searcher(搜索器)等。 在创建索引的过程中,Analyzer的作用至关重要。Analyzer负责将输入的文本分词...
Apache Lucene 是一个高性能、全文检索库,由Java编写,其核心设计目标是提供一个灵活、可扩展的搜索功能。它允许开发者在自己的应用程序中嵌入强大的搜索引擎,从而实现高效的文本检索。本文将深入探讨Lucene的索引...
在"lucene包"中,我们可以找到Lucene的核心组件和类,这些类负责索引和搜索文档。以下是Lucene实现的核心知识点: 1. **索引过程**: - `IndexWriter`:这是创建和更新Lucene索引的主要类。通过这个类,你可以将...
- `IndexWriter`是创建和维护索引的核心组件。 - `new StandardAnalyzer(Version.LUCENE_30)`:这里使用了标准分析器,用于对文档内容进行分析。 - `true`:指示要创建新的索引。 - `IndexWriter.MaxFieldLength...
2. **Lucene.Net.dll**:这是Lucene.net的核心库,包含了Lucene的所有主要类和方法,用于创建、维护和搜索索引。 3. **ICSharpCode.SharpZipLib.dll**:这是一个用于处理压缩和解压缩的库,可能在LukeNet中用于读取...
本文将详细介绍如何利用Lucene对XML文档进行索引建立的过程,并通过示例代码具体阐述其实现方法。 #### 二、基础知识 1. **Lucene简介** - Lucene是一个开源的全文搜索引擎库,能够帮助开发者构建应用程序内的搜索...
在提供的压缩包中,`Readme.txt`可能包含了项目介绍和使用指南,而`PicoSearch`可能是项目的核心代码库或可执行文件。开发者可以通过阅读`Readme.txt`了解如何配置、运行和测试这个基于Lucene的中型搜索引擎。 总的...
Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供了一个分布式文件系统,允许数据在集群中的多个节点上存储和访问;MapReduce则是一种编程模型,用于处理和生成大规模数据集。 将...
Lucene.NET主要由以下几个核心组件构成:分析器(Analyzer)、索引器(Indexer)、搜索器(Searcher)以及文档(Document)。通过这些组件,我们可以构建出一个能够高效处理大量文本数据的搜索引擎。 二、构建搜索...
它的核心功能在于高效地构建、管理和搜索文本索引,为开发者提供快速的数据查询能力。本篇文章将深入探讨Lucene如何生成数据,并以表格形式展示,以及如何利用这些数据进行开发。 在Lucene中,索引是其关键组成部分...
1. **Lucene索引基础** - Lucene的索引是建立在一系列文档基础上的,每个文档由多个字段(Fields)组成,字段中包含一系列的术语(Terms)。术语是索引的基本单位,它们在不同字段内被认为是不同的。 - 倒排索引...
这里我们将深入探讨这两个组件以及相关的资源和工具。 1. **IK分词器**: IK分词器(Intelligent Chinese Analyzer for Lucene)是一款针对中文的开源分词工具,适用于Lucene和Solr等全文检索引擎。它具有高性能、...