01全文检索技术介绍

简介: 01全文检索技术介绍

数据分类

我们生活中的数据总体分为两种:结构化数据和非结构化数据。

结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等。

非结构化数据: 指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件

结构化数据搜索

常见的结构化数据也就是数据库中的数据。在数据库中搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。

为什么数据库搜索很容易?

因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。

非结构化数据查询方法

1)顺序扫描法(Serial Scanning)(

所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。

(2)全文检索(Full-text Search)

将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。

例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某些信息可以提取出来进行结构化处理。

例如:读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。

这种先建立索引,再对索引进行搜索的过程就叫 全文检索(Full-text Search)。

虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。

如何实现全文检索

可以使用 Lucene实现全文检索。Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。

全文检索的应用场景

对于数据量大、数据结构不固定的数据 可采用全文检索方式搜索,比如百度、Google等搜索引擎、论坛站内搜索、电商网站站内搜索等。

目录
相关文章
|
5月前
|
运维 监控 Java
在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。
【7月更文挑战第1天】在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。本文讲解如何在Java中集成Elasticsearch,包括安装配置、使用RestHighLevelClient连接、创建索引和文档操作,以及全文检索查询。此外,还涉及高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据。
79 0
|
分布式计算 自然语言处理 Java
白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
98 0
|
存储 自然语言处理 NoSQL
使用Redisearch实现的全文检索功能服务
“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene 等方案,但是elasticsearch对运行时内存有着最低限额,其运行时大小推荐 2G 以上的内存空间,并且需要额外的磁盘空间做持久化存储。
使用Redisearch实现的全文检索功能服务
|
存储 自然语言处理 分布式计算
全文检索工具solr:第一章:理论知识
全文检索工具solr:第一章:理论知识
136 0
|
存储 搜索推荐 开发者
全文检索技术使用场景|学习笔记
快速学习全文检索技术使用场景
201 0
|
存储 自然语言处理 搜索推荐
快速上手搜索引擎的秘密武器——Lucene
这篇文章介绍下这个 Lucene,下篇写写 ElasticSearch , 然后再继续填 Spring 的坑 🕳 内容的话就很基础啦🐖,希望能帮你快速入门,了解下它
158 0
|
存储 SQL 自然语言处理
sphinx全文检索引擎
sphinx全文检索引擎
169 0
|
存储 XML 文字识别
干货 | 知识库全文检索的最佳实践
1、题记 这是stackoverflow上一篇精彩的问答。 原文不大好理解,我做了梳理+图解; 原文是ES早期版本,部分写法已不适用,所有DSL我在6.X上进行了重写和验证; 针对原文内容做了扩展。
906 0
干货 | 知识库全文检索的最佳实践
|
自然语言处理 搜索推荐 关系型数据库
ElasticSerach学习(三)-全文检索
ElasticSerach学习(三)-全文检索
153 0
|
存储 SQL 自然语言处理
Lindorm全文索引技术介绍
随着云原生、5G/IOT时代的到来,数据已经成为企业的重要资产,企业客户除了要求数据库能够“存得起”数据外,更加期望数据可以“看得见”,本文将介绍云原生多模数据库Lindorm的全文索引特性,基于Lucene构建倒排索引和列式存储,提供高效的多维查询、文本检索、统计分析能力,让数据更加可见。
5908 0
Lindorm全文索引技术介绍