全文索引概述|学习笔记

简介: 快速学习全文索引概述。

开发者学堂课程【ElasticSearch 最新快速入门教程全文索引概述】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10647


全文索引概述

 

内容介绍:

一、全文索引基本概述

二、全文索引应用场所

三、全文检索与数据查询的区别

四、ES 介绍

 

一、全文索引基本概述

全文检索是计算机程序通过扫描文章中的每一个词,对必要的词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。

全文检索(Full-TextRetrieval)是指以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。

关于全文检索,我们要知道:

1、只处理文本

2不处理语义

3搜索时英文不区分大小写

4结果列表有相关度排序

5并且可以对结果具有过滤高亮的功能

 

二、全文检索应用场景

我们使用 Lucene,主要是做站内搜索,即对一个系统内的资源进行搜索。

如 BBS、BLOG 中的文章搜索,网上商店中的商品搜索等。所以,学完 Lucene 后我们就可以为自已的项目增加全文检索的功能。

例如一些基于商城的全文检索系统:在项目中构建一个对于商品的全文检索功能,让买家先搜索索引库中的内容,得到商品的基本信息而且是按照某种规则排序的(例如热卖 点击率....感趣在通过连接,读取数据库的完成数据,这样既可以实现高效的查询效率,又可以为分流查询请求。

 

三、全文检索与数据查询的区别

1相关度排序:查出的结果没有相关度排序,不知道我想要的结果在哪一页。

我们在使用百度搜索时,一般不需要翻页,为什么?因为百度做了相关度排序:为每条结果打一个分数,这条结果越符合搜索条件,得分就越高,叫做相关度得分,结果列表会按照这个分数由高到低排列,所以第1页的结果就是我们最想要的结果

2查询的方式:全文检索的速度大大快于 SQL 的 like 搜索的速度。这是因为查询方式不同造成的,以查字典举例:数据库的 like 就是一页一页的翻,一行一行的找,而全文检索是先目录,得到结果所在的页码,再直接翻到这一页

3定位不一样:一个更侧重高效、安全的存储、一个是侧重准确、方便的搜索

 

四、ES 介绍

ES 是基于 Lucene 的开源搜索引擎,其查询语法关键字部分和 lucene 大致一样:

分页:from/size、字段:fields、排序:sort、查询:query

过滤:filter、高亮:highlight、统计:facet

Search Type

查询 query

中文分词

相关文章
|
弹性计算 Ubuntu 网络安全
借助阿里云ECS实现本地电脑连接实验室内网服务器
在实验室的服务器上进行开发,往往只能通过内网电脑进行ssh连接。然而疫情当下,很多时候都要居家办公,或远程办公。借助阿里云ECS,我们可以搭建一个FRP服务,实现内网穿透,在家里的电脑也可以ssh连接内网服务器。
1656 1
借助阿里云ECS实现本地电脑连接实验室内网服务器
|
5月前
|
存储 缓存 大数据
阿里云服务器实例规格怎么选?场景化选型指南参考
在阿里云选购云服务器的过程中,阿里云服务器实例规格的选择是许多用户面临的一大挑战。阿里云拥有多种不同的实例规格,为了简化用户的选择过程,阿里云官方在云服务器购买页面新增了场景化选型推荐功能。用户可以根据自己的上云场景,结合场景化选型中的业务场景和细分场景,来选择最适合自己的阿里云服务器实例规格。
183 10
|
7月前
|
固态存储 虚拟化 iOS开发
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
475 58
VMware ESXi 6.7U3v macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版)
|
JavaScript
【node错误】/usr/bin/env: node: No such file or directory
背景 安装了node后,执行npm run xxx的命令的时候,报错,提示如下: /usr/bin/env: node: No such file or directory   步骤 1.
6640 0
|
网络协议 算法 Linux
【Linux】深入探索:Linux网络调试、追踪与优化
【Linux】深入探索:Linux网络调试、追踪与优化
|
12月前
|
API 网络架构 Python
使用Python和Flask构建简单的RESTful API
【10月更文挑战第12天】使用Python和Flask构建简单的RESTful API
186 0
|
存储 关系型数据库 分布式数据库
突破大表瓶颈|小鹏汽车使用PolarDB实现百亿级表高频更新和实时分析
PolarDB已经成为小鹏汽车应对TB级别大表标注、分析查询的"利器"。
突破大表瓶颈|小鹏汽车使用PolarDB实现百亿级表高频更新和实时分析
|
11月前
|
SQL 存储 数据库
【赵渝强老师】基于Flink的流批一体架构
本文介绍了Flink如何实现流批一体的系统架构,包括数据集成、数仓架构和数据湖的流批一体方案。Flink通过统一的开发规范和SQL支持,解决了传统架构中的多套技术栈、数据链路冗余和数据口径不一致等问题,提高了开发效率和数据一致性。
555 7
|
缓存 监控 Java
分库分表带来的问题
分库分表带来的问题
|
API 开发者 微服务
深入浅出:使用Python构建微服务架构
在当今快速发展的软件行业中,微服务架构因其高度的灵活性和可扩展性而成为了一种流行趋势。本文将探讨如何使用Python语言,结合Flask框架来构建一个简单的微服务架构。我们将从微服务的基本概念入手,逐步深入到实现细节,最后展示一个基于此架构的小型应用案例。不同于传统的摘要,本文旨在通过一个具体的实践案例,让读者能够直观地理解微服务架构的优势以及在Python环境下的实现方法。