快速熟悉ElasticSearch的基本概念

1.全文检索

全文检索是通过文本内容进行全面搜索的技术。通过全文检索可以快速地在大量文本数据中查找包含特定关键词或者短语的文档,并且返回相关的搜索结果。

检索和查询的区别

  • 检索没有搜索条件边界,检索的结果取决于相关性,相关性计算无明确边界性条件,比如同义词、谐音、别名等等都可以作为相关性的判断依据。
  • 查询有搜索条件边界,举个例子:现在有张 t 表,我要查询 t 表中的所有字段且查询条件是 id = 1,age = 18
    ,那么我写出来的sql语句就是这样的
    select * from t1 where id = 1 and age = 18;
    这个时候age = 18,id = 1都是搜索的条件边界。

总结:检索和查询的区别就在于有没有搜索条件边界。

2.倒排索引

在讲倒排索引之前先讲一下什么是正排索引。

正排索引是将文档按照顺序排列并且进行编号的索引结构,在正排索引中可以根据编号快速的寻找到对应的文档资料。

在这里插入图片描述
倒排索引以单词或者短语建立的索引结构。
倒排索引的建立**是先对文档进行分词处理,然后记录每个单词在哪些文档中出现,以及出现的位置信息。**通过倒排索引,可以根据关键词或者短语快速的找到包含这些词语的文档。
在这里插入图片描述

3.ElasticSearch的介绍

ElasticSearch是开源的分布式搜索和数据分析引擎,它专门用于处理大规模的文本数据和实现高性能的全文检索,如果有要实现搜索的场景,那么ElasticSearch是一个很好的选择。

核心概念

索引

索引可以类比为关系型数据库的,也就是database

类型

类型对应于索引来说是内部的逻辑分区,一个索引内部可以对应一个或者多个类型。可以类比为数据库中的

文档

文档实际上就是真正存储数据的东西,这里面存储了我们真正的内容,一般是json格式的数据。
每个文档都有一个类型和id,一个文档里面多个字段。

mapping

“mapping” 是用于定义索引中数据的结构和字段类型的过程。它类似于数据库中的表结构定义。可以理解为关系型数据库中表的结构定义

PUT /user1
{"mappings": {"dynamic": "true","properties": {"name": {"type": "text"},"address": {"type": "object",}}}
}
PUT /user2
{"mappings": {"dynamic": "false","properties": {"name": {"type": "text"},"address": {"type": "object",}}}
}
PUT /user3
{"mappings": {"dynamic": "strict","properties": {"name": {"type": "text"},"address": {"type": "object",}}}
}

这里我设置了两个字段一个name,一个address,将他们的类型设置为text类型
如果我将某个文档的“dynamic”设置为strict或者false,那么就当有新字段的文档插入到这个索引里面来就会报错(类似于关系型数据库,如果往一个不存在的字段插入值那么肯定是会报错的),但是如果设置为true的话,Elasticsearch 将自动检测到新的字段,并为它们创建映射。

flied

flied也就是字段了,一个文档包含多个字段,每个字段都有自己的名称和类型。

dsl

实际上对应到关系型数据库就是sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE:内置组件<Teleport>妙用

一、<Teleport>简介 <Teleport>能将其插槽内容渲染到 DOM 中的另一个位置。也就是移动这个dom。 我们可以这么使用它: 将class为boxB的盒子移动到class为boxA的容器中。 <Teleport to".boxA"><div class"boxB"></div> &…

OC高级编程 第3章:Grand Central Dispatch

3.1 Grand Central Dispatch (GCD)概要 3.1.1什么是GCD Grand Central Dispatch&#xff08;GCD&#xff09;是异步执行任务的技术之一。一般将应用中记述线程管理用的代码在系统级中实现。开发者只要定义想执行的任务并追加到Dispatch Queue中&#xff0c;GCD就能生成必要的…

如何使用Docker安装Paperless-ngx系统并实现远程在线搜索查阅文档

文章目录 1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 Paperless-ngx是一个开源的文档管理系统&#xff0c;可以将物理文档转换成可搜索的在线档案&#xff0c;从而减少纸张的使用。它内置…

登录注册界面

T1、编程设计理工超市功能菜单并完成注册和登录功能的实现。 显示完菜单后&#xff0c;提示用户输入菜单项序号。当用户输入<注册>和<登录>菜单序号时模拟完成注册和登录功能&#xff0c;最后提示注册/登录成功并显示注册信息/欢迎XXX登录。当用户输入其他菜…

Docker操作基础命令

注意&#xff1a;以下命令在特权模式下进行会更有效&#xff01; 进入特权模式 sudo -ssudo su拉取镜像 sudo docker pull [镜像名] # sudo docker pull baiduxlab/sgx-rust:2004-1.1.3进入容器 端口开启服务&#xff1a; sudo docker start 3df9bf5dbd0c进入容器&#xf…

Open CASCADE学习|将圆转换为NURBS曲线

NURBS曲线&#xff0c;全称非均匀有理B样条曲线&#xff08;Non-Uniform Rational B-Splines&#xff09;&#xff0c;是计算机图形学中用于表示几何形状的数学表示方法。它结合了非均匀B样条&#xff08;B-Splines&#xff09;和有理基函数&#xff08;Rational Basis Functio…

R语言迅速计算多基因评分(PRS)

Polygenic Risk Scores in R 最朴素的理解PRS&#xff1a; GWAS分析结果中&#xff0c;有每个SNP的beta值、se值、P值&#xff0c;因为GWAS分析中将SNP变为0-1-2编码&#xff0c;所以这些显著的SNP的beta值&#xff0c;就可以用于预测。 比如&#xff1a;GWAS分析中&#xf…

SQL语言: 基本操作

DDL(数据定义) 库 创建数据库 CREATE DATABASE database_name; 删除数据库 DROP DATABASE database_name; 选择数据库 USE database_name; 表 创建表格 CREATE TABLE table_name( column1 datatype, column2 datatype, ... ); 删除表格 DROP TABLE table_name; 修改表格ALT…

linux内核网络中的互斥 “每日读书”

网络代码中广泛使用上锁&#xff0c;本书中每项主题下&#xff0c;可能都会发现上锁的议题&#xff0c;对众多程序设计类型而言&#xff0c;尤其是针对内核的程序设计&#xff0c;互斥&#xff0c;上锁机制以及同步都是一般性主题&#xff0c;而且相当有趣复杂&#xff0c;linu…

QT_day3:2024/3/22

作业1&#xff1a;设计界面 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin…

【Java基础知识总结 | 第六篇】Java反射知识总结

文章目录 6.Java反射知识总结6.1概述6.1.1什么是反射&#xff1f;6.1.2为什么使用反射&#xff1f; 6.2反射的原理6.3反射的使用6.3.1获取类对象&#xff08;1&#xff09;通过具体类的类名获取&#xff08;2&#xff09;通过对象实例获取&#xff08;3&#xff09;通过class.f…

CSS设置移动端页面底部安全距离

env(safe-area-inset-bottom)是一个CSS属性值&#xff0c;用于设置底部安全距离。它表示使用环境变量来获取底部安全距离的值。当使用环境变量时&#xff0c;需要使用env()函数来引用具体的环境变量。例如&#xff1a; <style> .box{padding-bottom: env(safe-area-inse…

使用uniapp 的 plus.sqlite 操作本地数据库报错:::table xxx has no column named xxxx

背景&#xff1a; 1、使用uniapp 的 plus.sqlite 进行APP本地数据库操作 2、SQLite 模块用于操作本地数据库文件&#xff0c;可实现数据库文件的创建&#xff0c;执行SQL语句等功能。 遇到&#xff1a;在之前创建的表上进行新增字段的操作时候&#xff0c;出现问题&#xff1a…

机器学习(一)

经典定义: 利用经验改善系统自身的性能。 经典的机器学习过程: 基本术语: 数据集:训练集、测试集 示例、样例、样本 属性、特征:属性值 属性空间、样本空间、输入空间 特征向量 标记空间、输出空间 归纳偏好(偏置): 任何一个有效的机器学习算法必有其偏好 学习算法的…

代码随想录算法训练营第33天|1005.K次取反后最大化的数组和|134. 加油站|135. 分发糖果

代码随想录算法训练营第33天|1005.K次取反后最大化的数组和|134. 加油站|135. 分发糖果 1005.K次取反后最大化的数组和 本题简单一些&#xff0c;估计大家不用想着贪心 &#xff0c;用自己直觉也会有思路。 https://programmercarl.com/1005.K%E6%AC%A1%E5%8F%96%E5%8F%8D%E5%…

Python中图片的切块与合并

Python中图片的切块与合并 有时候我们处理的图片过大而内存不足时&#xff0c;切块是一种不错的方法&#xff0c;化整为零&#xff0c;分治处理。切块图片其实没必要存储&#xff0c;不过代码中还是进行了保存。import os from PIL import Imagedef image_cut_and_merge(image…

Elastic-Job 分布式任务调度

一、使用场景 &#xff08;1&#xff09;分布式项目中 定时任务。如果只部署一台机器&#xff0c;可用性无法保证&#xff0c;如果定时任务机器宕机&#xff0c;无法故障转移&#xff0c;如果部署多台机器时&#xff0c;同一个任务会执行多次&#xff0c;任务重复执行也会出问…

力扣438. 找到字符串中所有字母异位词

Problem: 438. 找到字符串中所有字母异位词 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.编写辅助函数bool same(vector& need, vector& matched)&#xff1a; 1.1 以need为标准&#xff0c;循环对比need和matched的每一个位置的元素值是否相等 2.获…

C++ IDisposable 接口抽象类实现

每个C/C对象实例都应正确实现 IDisposable 接口&#xff0c;以确保对象实例能够正确释放持有的托管资源&#xff0c;而不仅仅只是依赖于 C RAII机制调用对象的析构函数。 这是因为并非所有的 C/C 对象&#xff0c;都通过析构函数来处理资源释放是正确的&#xff0c;例如&#x…

《苹果 iOS 应用开发与分发的关键问题解析》

一、背景 解决同事问的问题&#xff0c;来来回回被问好几次相同的问题&#xff0c;然后确认&#xff0c;我觉得不如写个文档 二、非研发人员安装iOS应用方式 TestFlightIPA 文件 对比 TestFlightIPA 文件安装方式TestFlight 是苹果提供的一个 beta 测试平台&#xff0c;开发者…