我们日常生活中的数据可以分成两种,一种是结构化数据,还有一种是非结构化数据。
结构化数据就是固定格式和有限长度的数据,比如数据库和元数据等等。
非结构化就是无固定格式和不定长的数据,比如邮件和word文档。
还有介于两者之间的,半结构化数据,比如XML,html等,看具体需求可以有不同的处理方法。
非结构化数据还可以叫做全文数据。搜索引擎一般是针对这种数据来索引。
一种最直观的方法可以顺序扫瞄,速度非常慢。还有一种方法,我们把非结构数据中的一些信息抽取出来,然后变成结构化的,从而达到搜索相对较快的目的。重新抽取出来的信息我们称之为索引。举个例子,字典的拼音表就相当于索引,对于每个字的解释是非结构化的,如果字典没有拼音表,只能顺序扫描,然而字的某些信息是可以提取出来进行结构化处理的,比如读音就比较结构化,分声母和韵母,分别几种可以一一举例,于是将读音拿出来按照一定的顺序排列,每一项读音指向此字的详细解释的页数。
从字符串到文件的索引被成为反向索引。每个字符串指向包含此字符串的文档链表,这种文档链表成为倒排表。有了索引,保存的信息和要搜索的信息一致,可以大大加快搜索的速度。
创建索引的过程如下所示:
1. 准备原文档
2. 分词组建(Tokenizer)将文档分成一个个单独的词,去标点符号,去停用词
3. 继续传给语言处理组件,对于英语,将单词缩减成词根形式等等
4. 传给索引组建(indexer), 利用得到的词创建一个字典,对字典按照字母序排序,合并成文档倒排。
5. 根据相关性,对结果进行排序。
相关推荐
#### 全文检索概述 全文检索是一种信息检索方式,它能够根据文档中的词语或短语来搜索匹配项。相比于传统的基于元数据(如标题、作者、摘要等)的检索方式,全文检索能够更准确、全面地定位文档内容。全文检索的...
### 基于Lucene的全文检索引擎研究与应用 #### 一、Lucene概述 Lucene是一款由Java编写的全文检索引擎工具包,具备快速的索引访问速度,支持多用户访问,并且可以在多种平台上运行。随着数字信息量的爆炸性增长,...
### Lucene基于Java的全文检索引擎简介 #### 一、Lucene概述与历史背景 Lucene是一个基于Java的全文检索引擎工具包,旨在为各种规模的应用程序提供强大的文本搜索功能。该工具包由Doug Cutting创建,他是全文检索...
《Lucene.NET 1.4.3全文检索技术深度解析》 Lucene.NET是一个开源的、基于Java Lucene的全文检索引擎,专为.NET Framework设计。这个版本是1.4.3,它提供了强大的文本搜索功能,使得开发者能够快速集成到自己的应用...
**一、全文检索概述** 全文检索是一种能够在大量文本数据中快速找出与查询语句相关文档的技术。相比传统的基于关键词索引的搜索,全文检索能提供更精确的匹配结果,因为它会考虑文档中每个单词的相关性,而不仅仅是...
《Lucene 4.8 全文检索引擎入门详解》 Lucene 是一款开源的全文检索库,由 Apache 软件基金会维护。在版本 4.8 中,Lucene 提供了强大的文本分析、索引构建和搜索功能,使得开发者能够轻松地在应用程序中集成高效的...
**Lucene 全文检索引擎概述** Lucene 是一个由 Apache 软件基金会开发的开源全文检索库,它提供了一个高效、可扩展的信息检索框架。Lucene 是用 Java 编写的,但也有其他语言的版本,如 .NET 的 Lucene.NET。作为一...
### 一种基于Lucene检索引擎的全文数据库的研究与实现 #### 1. 引言 随着信息技术的飞速发展和互联网的普及,大量的文本信息被数字化存储,这为信息检索带来了前所未有的挑战和机遇。传统的数据库管理系统(DBMS)...
**Lucene.Net** 是一个基于 .NET 的高性能全文检索引擎库。它最初由 Java 版本的 Lucene 发展而来,旨在为 .NET 开发者提供一个强大而灵活的搜索解决方案。随着项目的演进,Lucene.Net 经历了从开源到商业化的转变。...
自那时起,Lucene不断发展壮大,成为了业界标准的全文检索引擎之一。 #### 2. 全文检索的实现机制与数据库索引的区别 **全文检索机制**: - **数据模型**:Lucene使用类似于数据库表的数据模型,即文档(Document)...
### Lucene检索数据库支持中文检索 #### 一、Lucene简介与原理 ##### 1. Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写而成。其核心功能是为开发者提供构建搜索应用程序的基础框架。Lucene...
**Lucene 全文检索工具包** Lucene 是一个由 Apache 软件基金会开发的开源全文搜索引擎库,它提供了一个高性能、可扩展的信息检索框架。这个工具包中包含了 Lucene 的核心组件,使得开发者能够方便地在应用程序中...
### Lucene全文检索原理及其实现 #### Lucene简介与特性 Lucene是一个高效且可扩展的全文检索库,它的核心优势在于提供了强大的索引和搜索功能,并且完全使用Java实现,便于集成到Java应用程序中。Lucene适用于纯...
**Lucene 3.0.1 全文检索引擎架构详解** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了基础架构,使得开发者能够快速构建自己的搜索引擎应用。在 Lucene 3.0.1 版本中,主要包含了对文件...
1. 全文检索系统概述 全文检索系统是一种能够对大量文本数据进行快速定位和查找的技术。在甲骨文研究中,由于数据量大且内容复杂,建立一个高效的全文检索系统至关重要。基于Lucene的甲骨文全文检索系统,利用其强大...
【Lucene 全文检索引擎概述】 Lucene 是一个由 Apache 软件基金会的 Jakarta 项目组开发的开源全文检索引擎工具包。不同于完整的全文检索引擎,Lucene 提供了核心的查询引擎、索引引擎和部分文本分析引擎,支持英语...
1. **空间检索概述**:Lucene 4.8引入了对空间数据的支持,使得用户可以基于地理位置信息进行查询。这主要依赖于`Spatial4j`库来处理地理坐标,并结合Lucene的索引结构,实现了高效的空间查询。 2. **空间索引类型*...
#### 全文检索概述 全文检索技术提供面向全文的数据检索功能,允许用户通过文档中的任意有意义的字词进行检索。随着信息化水平的提升,信息系统积累了大量结构化和非结构化数据。全文检索特别适用于处理非结构化...