`
- 浏览:
797692 次
- 性别:
- 来自:
成都
-
Lucene
1、学习Lucene需要知道的概念:
全文探索:先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。
1.1基本知识概要:
索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。
搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。
反向所引:从字符串到文件的映射是文件到字符串映射的反向过程,于是保存这种信息的索引称为反向索引。
存在优势:全文搜索相对于顺序扫描的优势之一:一次索引,多次使用。
去掉停词:就是对探索无益的单词,他会消耗不必要的查询时间,去掉如"this","a","of"等。
term还原:就是将词的变化形式还原为词根,如去掉s等的操作,通过语言处理组件实现。
合并索引:对相同的term生成的索引进行合并,保持对同一个资源只建立一个索引。
探索语法:"AND" ,"OR",'NOT',指的是包含什么或什么不含有什么。
探索相关性:就是匹配程度,term weight(权衡相关比重)。
空间模型算法: 判断词(Term)之间的关系从而得到文档相关性的过程应用一种叫做向量空间模型的算法(Vector Space Model)。
1.2索引过程:
1) 有一系列被索引文件
2) 被索引文件经过语法分析和语言处理形成一系列词(Term)。
3) 经过索引创建形成词典和反向索引表。
4) 通过索引存储将索引写入硬盘。
1.3搜索过程:
a) 用户输入查询语句。
b) 对查询语句经过语法分析和语言分析得到一系列词(Term)。
c) 通过语法分析得到一个查询树。
d) 通过索引存储将索引读入到内存。
e) 利用查询树搜索索引,从而得到每个词(Term)的文档链表,对文档链表进行交,差,并得到结果文档。
f) 将搜索到的结果文档对查询的相关性进行排序。
g) 返回查询结果给用户。
2、Lucene轮廓:
Lucene是全文搜索的一种具体应用。
基本操作对象单元:
Document: 被索引的文档用Document对象表示。
IndexWriter:通过函数addDocument将文档添加到索引中,实现创建索引的过程。
Index:Lucene的索引是应用反向索引。
Query:当用户有请求时,Query代表用户的查询语句。
IndexSearcher:通过函数search搜索Lucene Index, IndexSearcher计算term weight和score并且将结果返回给用户。
TopDocsCollector:返回给用户的文档集合用TopDocsCollector表示。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
标题为“Lucene初级教程.doc”,我们可以推断这是一份关于Lucene的入门级文档,Lucene是Apache软件基金会的一个开放源代码项目,它是一个全文搜索引擎库,广泛应用于Java开发中,用于实现高效、可扩展的信息检索服务...
### Lucene初级教程知识点概述 #### 1. Lucene简介 - **定义**: Lucene是一个开源的全文搜索引擎库,主要用于构建应用程序的搜索功能。与直接使用的搜索引擎产品不同,Lucene提供了一个开发平台,让开发者能够根据...
《Lucene2.9开发指南》是一份专为初级开发者准备的资料,旨在详细介绍如何使用开源全文搜索工具包Lucene2.9.1。Lucene作为一个强大的文本搜索库,其核心功能包括建立索引和执行搜索。以下是关于Lucene2.9开发的一些...
2. **数据库集成**:学习如何将MySQL中的数据导入到Lucene的索引中,可能涉及JDBC连接、SQL查询等知识。 3. **索引创建**:了解如何使用Lucene的Analyzer对数据进行分词,创建索引,包括字段设置、分析器选择等。 ...
### Apache Solr 初级教程知识点总结 #### 一、Apache Solr 概述 - **全文检索技术的重要性**:随着互联网的发展,信息量日益膨胀,如何高效地从海量信息中提取有价值的内容变得至关重要。全文检索技术作为一种...
总的来说,Apache Solr是一个功能强大的全文搜索引擎,适合需要高效搜索功能的应用场景,如电子商务、知识库、内容管理系统等。通过与Java中间件结合,它可以轻松地集成到现有的IT环境中,提供便捷的搜索体验。
* 熟练掌握 Java 初级知识和高级知识,例如反射、泛型、代理等技术 * 具备良好的面向对象编程思想 * 熟悉常用的 Java 设计模式(如单例、装饰、策略、模板、工厂、观察者等设计模式) javaweb 技能 * 熟练掌握 ...
1. **Java初级知识**: - **反射**:允许程序在运行时检查类的信息,并能动态调用类的方法和改变类的属性,增强了程序的灵活性。 - **泛型**:提供类型安全,防止在集合中存储不兼容的数据类型,同时提高代码的...
4.2 fckeditor在线文本编辑器初级应用 4.3 fckeditor在线文本编辑器常用配置 4.4 fckeditor在线文本编辑器高级应用 4.5 小结 第5章 验证模块(jsp+servlet+jsvaildation) 5.1 表单基础 5.2 客户端...
1. **Java基础知识**:应聘者掌握了Java初级和高级知识,包括反射、泛型和代理技术。反射允许在运行时检查和修改类的行为;泛型提高了代码类型安全性和重用性;代理则是创建动态代理类,用于在运行时创建对象的接口...
首先,这位工程师拥有扎实的Java基础,能够熟练使用Java初级和高级特性,包括反射、泛型和代理等。他/她具备面向对象编程思维,并对多种Java设计模式有深入理解,如单例、装饰、策略、模板、工厂和观察者模式。在...
2. **Java编程**:简历中提到了对Java初级和高级知识的掌握,包括反射、泛型和代理等技术。反射允许在运行时检查和操作类、接口和对象。泛型提供了类型安全,允许在编译时检查类型。代理允许创建动态实现指定接口的...
这本书的目的是为读者提供一套Solr的初级详细教程,帮助用户掌握Solr的基础知识以及进阶应用。 书中内容分为两大部分: 第一部分,介绍了Solr的各个方面,包括其基本概念、配置方法、索引构建和文本分析等。这部分...