- 浏览: 918267 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (209)
- struts1 (3)
- hibernate3 (19)
- java (13)
- spring2 (5)
- netBeans (1)
- eclipse (1)
- JSF (1)
- DIV+CSS篇章 (1)
- jFreeChart+Oracle之曲线,柱状及饼状图的实现 (1)
- JSF知识与技巧 (3)
- Oracle数据类型的介绍与比较 (2)
- J2EE (2)
- Ajax技术 (4)
- javaScript技术 (25)
- struts2 (16)
- C/C++程序设计 (1)
- oracle系统学习 (29)
- 算法分析 (0)
- Linux实践 (7)
- extjs开发经验 (13)
- flex开发总结 (1)
- FusionCharts总结 (0)
- 高级数据库总结 (0)
- SVG拓扑图开发总结 (0)
- CSS (1)
- CSS使用简介 (1)
- SVG (0)
- DOJO (0)
- Junit测试 (0)
- lucene (24)
- solr (6)
- tokyo tyrant 技术 (7)
- Html5 (1)
- 算法与数据结构 (0)
- 物联网相关技术学习 (0)
- UI设计 (1)
- webservice (0)
- Android (5)
- hibernate4 (3)
- solrcloud (0)
- dorado5 (0)
- dorado7 (0)
- elasticsearch (0)
- GWT (0)
- node.js (0)
- 并发编程 (1)
- 大数据 (1)
- 项目经验 (5)
最新评论
-
cs261244787:
楼主好人! 平安
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
xinsiyou:
牛逼,就是样式被搞没了
JS实现选项右移,左移,向上,向下调整顺序 -
unnamed__:
这代码风格就像一坨翔
java获取数据库的列名,类型等信息
索引核心类
Directory:描述Lucene索引存放的位置,是一个抽象类,由子类负责指定索引存在位置:内存或者磁盘;
IndexWriter:负责创建或者打开新索引,以及对索引做增删改操作;
Analyzer:文本文件在被索引前需要经过它进行分析,把它的对象在IndexWriter构造时传入,是抽象类;Analyzer 是分析器,它的作用是把一个字符串按某种规则划分成一个个词语,并去除其中的无效词语,这里说的无效词语是指英文中的“of”、 “the”,中文中的 “的”、“地”等词语,这些词语在文章中大量出现,但是本身不包含什么关键信息,去掉有利于缩小索引文件、提高效率、提高命中率。
分词的规则千变万化,但目的只有一个:按语义划分。这点在英文中比较容易实现,因为英文本身就是以单词为单位的,已经用空格分开;而中文则必须以某种方法将连成一片的句子划分成一个个词语。具体划分方法下面再详细介绍,这里只需了解分析器的概念即可。
Document:文档对象代表一些域的集合;用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。一条记录经过索引之后,就是以一个Document的形式存储在索引文件中的。用户进行搜索,也是以Document列表的形式返回。
Field:每个域都有域名和对应的域值;一个Document可以包含多个信息域,例如一篇文章可以包含“标题”、“正文”、“最后修改时间”等信息域,这些信息域就是通过Field在Document中存储的。
Field有两个属性可选:存储和索引。通过存储属性你可以控制是否对这个Field进行存储;通过索引属性你可以控制是否对该Field进行索引。这看起来似乎有些废话,事实上对这两个属性的正确组合很重要,下面举例说明:
还是以刚才的文章为例子,我们需要对标题和正文进行全文搜索,所以我们要把索引属性设置为真,同时我们希望能直接从搜索结果中提取文章标题,所以我们把标题域的存储属性设置为真,但是由于正文域太大了,我们为了缩小索引文件大小,将正文域的存储属性设置为假,当需要时再直接读取文件;我们只是希望能从搜索解果中提取最后修改时间,不需要对它进行搜索,所以我们把最后修改时间域的存储属性设置为真,索引属性设置为假。上面的三个域涵盖了两个属性的三种组合,还有一种全为假的没有用到,事实上Field不允许你那么设置,因为既不存储又不索引的域是没有意义的。
tocken: tocken是term的一次出现,它包含trem文本和相应的起止偏移,以及一个类型字符串。一句话中可以出现多次相同的词语,它们都用同一个term表示,但是用不同的tocken,每个tocken标记该词语出现的地方。
segment: 添加索引时并不是每个document都马上添加到同一个索引文件,它们首先被写入到不同的小文件,然后再合并成一个大索引文件,这里每个小文件都是一个segment。
搜索核心类
IndexSearcher:以只读的方式打开索引,需要Directory(指出索引位置)构造出来;
Term:搜索时候基本单元,由域名和域值组成,类似于field;term是搜索的最小单位,它表示文档的一个词语,term由两部分组成:它表示的词语和这个词语所出现的field。
Query:查询抽象类,有许多具体的子类实现,如TermQuery;
TermQuery:匹配指定域中包含特定项的文档;
TopDocs:一个简单的指针日期,指向前N个排名的搜索结果。
Directory:描述Lucene索引存放的位置,是一个抽象类,由子类负责指定索引存在位置:内存或者磁盘;
IndexWriter:负责创建或者打开新索引,以及对索引做增删改操作;
Analyzer:文本文件在被索引前需要经过它进行分析,把它的对象在IndexWriter构造时传入,是抽象类;Analyzer 是分析器,它的作用是把一个字符串按某种规则划分成一个个词语,并去除其中的无效词语,这里说的无效词语是指英文中的“of”、 “the”,中文中的 “的”、“地”等词语,这些词语在文章中大量出现,但是本身不包含什么关键信息,去掉有利于缩小索引文件、提高效率、提高命中率。
分词的规则千变万化,但目的只有一个:按语义划分。这点在英文中比较容易实现,因为英文本身就是以单词为单位的,已经用空格分开;而中文则必须以某种方法将连成一片的句子划分成一个个词语。具体划分方法下面再详细介绍,这里只需了解分析器的概念即可。
Document:文档对象代表一些域的集合;用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。一条记录经过索引之后,就是以一个Document的形式存储在索引文件中的。用户进行搜索,也是以Document列表的形式返回。
Field:每个域都有域名和对应的域值;一个Document可以包含多个信息域,例如一篇文章可以包含“标题”、“正文”、“最后修改时间”等信息域,这些信息域就是通过Field在Document中存储的。
Field有两个属性可选:存储和索引。通过存储属性你可以控制是否对这个Field进行存储;通过索引属性你可以控制是否对该Field进行索引。这看起来似乎有些废话,事实上对这两个属性的正确组合很重要,下面举例说明:
还是以刚才的文章为例子,我们需要对标题和正文进行全文搜索,所以我们要把索引属性设置为真,同时我们希望能直接从搜索结果中提取文章标题,所以我们把标题域的存储属性设置为真,但是由于正文域太大了,我们为了缩小索引文件大小,将正文域的存储属性设置为假,当需要时再直接读取文件;我们只是希望能从搜索解果中提取最后修改时间,不需要对它进行搜索,所以我们把最后修改时间域的存储属性设置为真,索引属性设置为假。上面的三个域涵盖了两个属性的三种组合,还有一种全为假的没有用到,事实上Field不允许你那么设置,因为既不存储又不索引的域是没有意义的。
tocken: tocken是term的一次出现,它包含trem文本和相应的起止偏移,以及一个类型字符串。一句话中可以出现多次相同的词语,它们都用同一个term表示,但是用不同的tocken,每个tocken标记该词语出现的地方。
segment: 添加索引时并不是每个document都马上添加到同一个索引文件,它们首先被写入到不同的小文件,然后再合并成一个大索引文件,这里每个小文件都是一个segment。
搜索核心类
IndexSearcher:以只读的方式打开索引,需要Directory(指出索引位置)构造出来;
Term:搜索时候基本单元,由域名和域值组成,类似于field;term是搜索的最小单位,它表示文档的一个词语,term由两部分组成:它表示的词语和这个词语所出现的field。
Query:查询抽象类,有许多具体的子类实现,如TermQuery;
TermQuery:匹配指定域中包含特定项的文档;
TopDocs:一个简单的指针日期,指向前N个排名的搜索结果。
发表评论
-
lucene3.5-使用Berkeley DB存储索引
2012-01-06 13:12 1542lucene3.5-使用Berkeley DB存储索引 -
lucene3.5自定义过滤器
2012-01-05 20:17 1375lucene3.5自定义过滤器,随后! -
lucene3,5处理日期范围查询
2012-01-05 20:16 1390lucene3,5处理日期范围查询,随后! -
lucene3.5处理数值域的范围查询
2012-01-05 20:15 1516lucene3.5处理数值域的范围查询随后、 -
lucene3.5自定义QueryParser类
2012-01-05 20:12 1339lucene3.5自定义QueryParser类,随后! -
lucene3.5高亮设置
2012-01-05 11:14 3900import java.io.IOException; im ... -
lucene3.5高亮显示报错
2012-01-04 20:40 2426Exception in thread "main& ... -
lucene3.5查询过滤
2012-01-04 16:10 1341lucene3.5查询过滤 -
lucene3.5排序查询
2012-01-04 16:10 1418lucene3.5排序查询 -
lucene3.5分页查询
2012-01-04 16:08 1443asdasdasdasd -
lucene3.5检索实例
2012-01-04 10:17 2543public class MySearcher { pub ... -
lucene3.5更新索引
2011-12-31 10:53 4089lucene索引的更新操作其实就是删除索引和添加索引的组合。 ... -
lucene3.5删除索引实例
2011-12-31 10:28 4354lucene提供了两种删除索引的方式,一种是通过documen ... -
lucene3.5创建索引
2011-12-31 10:19 1801从lucene3.0之后的版本,创建索引的过程如下实例所示。现 ... -
lucene3.x的目录结构
2011-12-30 09:27 1132lucene包括core和sandbox两部分,其中core是 ... -
lucene3.x的工作方式
2011-12-30 09:02 1008lucene提供的服务实际包含两部分:一入一出。 所谓入是写入 ... -
lucene3.x中Query子类集合介绍与实例
2011-12-31 10:14 1467Query有很多子类,分别完成不同类型的查询任务: 1. T ... -
Apache Lucene 3.5 发布的优化、改进和Bug修复
2011-12-29 10:57 1578Apache Lucene 是一个基于Java的、高性能的全文 ... -
Solr相关学习链接
2011-12-29 10:57 137301. Solr http://lucene.apache. ... -
基于源码搭建solr搜索服务器
2011-12-28 18:56 2975基于源码搭建的好处的就是,我们在开发过程中可以方便地进行调试跟 ...
相关推荐
3. **Lucene 5.x、6.x、7.x的关键特性**: - Lucene 5.x引入了新的DocValues格式,提高了索引的压缩率和查询速度。同时,支持更强大的多字段搜索和聚合功能。 - Lucene 6.x进一步优化了内存使用,增强了查询性能,...
【Lucene4.x实战类百度搜索的大型文档海量搜索系统】是针对企业信息化系统中文档中心管理的一个实际应用,涉及到的技术主要包括文档处理、全文检索、高亮显示等关键环节。 首先,Lucene作为核心的搜索引擎库,负责...
《Lucene4.X实战:构建类百度搜索的大型文档海量搜索系统》 Lucene是一个强大的全文搜索引擎库,广泛应用于各种信息检索系统。本教程通过17讲内容,深入讲解了如何利用Lucene4.X实现一个类似百度的大型文档搜索系统...
《Lucene4.X实战类百度搜索的大型文档海量搜索系统》是针对企业信息化系统中文档中心管理系统的深度应用,利用Apache Lucene构建一个强大的搜索引擎。Lucene作为一个高性能、全文本检索库,它允许开发者轻松地在应用...
Lucene的核心组件包括Analyzer(分析器)、IndexWriter(索引写入器)、Searcher(搜索器)和QueryParser(查询解析器)。Analyzer负责将原始文本转换为可搜索的Token序列;IndexWriter则负责创建和更新索引;...
《Lucene4.X实战类baidu搜索的大型文档海量搜索系统》系列教程涵盖了从Lucene的基础概念到高级应用的全面讲解。在这个系列中,我们特别关注了Lucene的分词器,尤其是第三部分——"Lucene分词器3"。 Lucene作为一款...
本课程专注于Lucene 4.x版本,旨在通过一系列实战案例帮助开发者掌握如何利用Lucene实现类似百度的搜索功能。在第十九讲“Lucene过滤”中,我们将探讨Lucene内置的过滤器机制,这是优化搜索结果和提升用户体验的关键...
《Lucene4.X实战类百度搜索的大型文档海量搜索系统》是针对企业信息化系统中文档中心管理系统的深度应用,利用Apache Lucene构建高效、全面的全文检索功能。在这个项目实战中,我们主要关注如何处理不同格式的文档,...
在"Lucene4.X实战类baidu搜索的大型文档海量搜索系统"课程中,涵盖了一系列关于Lucene的核心知识点,包括入门、系统架构、索引构建与优化、搜索机制以及高级进阶等内容。 **1. Lucene入门与系统架构** Lucene的入门...
《Lucene4.X实战类baidu搜索的大型文档海量搜索系统》是一门全面解析Lucene搜索引擎的课程,涵盖了从基础到高级的各种应用。这门课程包括了Lucene的入门、系统架构、索引构建与优化、搜索实现以及一系列的深入实战和...
《Lucene4.X实战类百度搜索的大型文档海量搜索系统》系列课程主要涵盖了Lucene搜索引擎的各个核心概念和实战技巧,旨在帮助学习者深入理解并掌握Lucene的使用方法。在这一系列课程中,我们将逐步解析Lucene的系统...
《Lucene4.X实战类baidu搜索的大型文档海量搜索系统》课程主要涵盖了Lucene的基础概念、架构、索引原理及优化、搜索实现、实战应用等多个方面,旨在帮助学习者深入理解并掌握Lucene这一强大的全文搜索引擎库。...
【Lucene搜索引擎核心技术】 在构建大型文档海量搜索系统中,Lucene是一个不可或缺的工具,它提供了高效、可扩展的全文检索功能。以下是关于Lucene索引搜索的核心知识点: 1. **索引搜索类**: - **IndexSearcher...
8. **倒排索引(Inverted Index)**:Lucene的核心是倒排索引,它将文档中的词元映射到包含这些词元的文档列表。.tim和.tip文件就构成了倒排索引的一部分,存储了词元的postings列表,包含文档ID、频率、偏移量等...
《Ajax+Lucene构建搜索引擎》源代码是针对Lucene 2.x版本的一个示例项目,旨在教用户如何结合Ajax技术和Lucene搜索引擎库来创建高效的、交互式的搜索功能。Lucene是一个开源全文检索库,由Apache软件基金会开发,它...
IKAnalyzer for Lucene5.x 是一个专门为Lucene 5.x版本优化的中文分词器。在中文信息检索领域,分词器是至关重要的组件,它负责将连续的汉字序列分割成具有独立语义的词语,以便进行后续的索引和查询操作。IK...
本文将详细介绍mmseg4j和Lucene5.x的基本概念,以及如何将它们整合在一起,同时提供mmseg4j的源码解析。 **mmseg4j简介** mmseg4j基于Maxent Minimum Error Rate(最大熵最小错误率)算法,该算法在分词效率和准确...
【标题】"lucene-databasedirectory:Lucene 5.x数据库目录实现"涉及的核心知识点是Lucene,一个流行的全文搜索引擎库,以及如何利用Java在Lucene 5.x版本中实现数据库目录。Lucene允许开发者高效地索引、搜索和管理...
【标题】:“第一个Lucene 3.6 (3.X) 入门实例” 【内容详解】 Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它为Java开发者提供了强大的文本检索功能,广泛应用于搜索引擎、信息检索系统等场景。...
《深入理解Lucene 3.0.2:核心与演示》 在信息技术领域,搜索引擎的构建是至关重要的一环,而Lucene作为一个开源全文检索库,为开发者提供了强大的文本搜索功能。这里我们主要聚焦于Lucene 3.0.2版本,通过分析其...