首页 > 其他分享 >谈谈全文检索Elasticsearch的核心概念

谈谈全文检索Elasticsearch的核心概念

时间:2024-11-07 08:49:41浏览次数:3  
标签:index 索引 全文检索 谈谈 Elasticsearch 分片 document type es

Elasticsearch的核心概念

1 NRT(Near Realtime):近实时

两方面:

  • 写入数据时,过1秒才会被搜索到,因为内部在分词、录入索引。

  • es搜索时:搜索和分析数据需要秒级出结果。

2 Cluster:集群

包含一个或多个启动着es实例的机器群。通常一台机器起一个es实例。同一网络下,集名一样的多个es实例自动组成集群,自动均衡分片等行为。默认集群名为“elasticsearch”。

3 Node:节点

每个es实例称为一个节点。节点名自动分配,也可以手动配置。

4 Index:索引

包含一堆有相似结构的文档数据。

索引创建规则:

  • 仅限小写字母

  • 不能包含\、/、 *、?、"、<、>、|、#以及空格符等特殊符号

  • 从7.0版本开始不再包含冒号

  • 不能以-、_或+开头

  • 不能超过255个字节(注意它是字节,因此多字节字符将计入255个限制)

5 Document:文档

es中的最小数据单元。一个document就像数据库中的一条记录。通常以json格式显示。多个document存储于一个索引(Index)中。

book document

{
  "book_id": "1",
  "book_name": "java编程思想",
  "book_desc": "从Java的基础语法到最高级特性(深入的[面向对象](https://baike.baidu.com/item/面向对象)概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。",
  "category_id": "2",
  "category_name": "java"
}
6 Field:字段

就像数据库中的列(Columns),定义每个document应该有的字段。

7 Type:类型

每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field。

注意:6.0之前的版本有type(类型)概念,type相当于关系数据库的表,ES官方将在ES9.0版本中彻底删除type。本教程typy都为_doc。

8 shard:分片

index数据过大时,将index里面的数据,分为多个shard,分布式的存储在各个服务器上面。可以支持海量数据和高并发,提升性能和吞吐量,充分利用多台机器的cpu。

9 replica:副本

在分布式环境下,任何一台机器都会随时宕机,如果宕机,index的一个分片没有,导致此index不能搜索。所以,为了保证数据的安全,我们会将每个index的分片经行备份,存储在另外的机器上。保证少数机器宕机es集群仍可以搜索。

能正常提供查询和插入的分片我们叫做主分片(primary shard),其余的我们就管他们叫做备份的分片(replica shard)。

es6默认新建索引时,5分片,2副本,也就是一主一备,共10个分片。所以,es集群最小规模为两台。

Elasticsearch核心概念 vs 数据库核心概念

关系型数据库(比如Mysql)非关系型数据库(Elasticsearch)
数据库Database索引Index
表Table索引Index(原为Type)
数据行Row文档Document
数据列Column字段Field
约束 Schema映射Mapping

上一篇文章:Elasticsearch的功能及概念-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/143556512?spm=1001.2014.3001.5502下一篇文章: 

标签:index,索引,全文检索,谈谈,Elasticsearch,分片,document,type,es
From: https://blog.csdn.net/Z0412_J0103/article/details/143565562

相关文章

  • 安装和启动ElasticSearch
    安装和启动ElasticSearch我们直接使用docker部署好的ElasticSearch访问路径:http://192.168.144.160:9200ES默认端口是9200ES基本使用<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spri......
  • Macbook M1下安装elasticsearch
    一、下载安装包(Kibana的版本需要和Elasticsearch的版本一致。这是官方支持的配置。)地址分别为:ElasticSearch:https://www.elastic.co/cn/downloads/elasticsearchkibana:https://www.elastic.co/cn/downloads/kibana对于MacM1芯片基于ARM架构应该选择Aarch64(另一个X86_64......
  • 使用 【Java】 集成 【Elasticsearch】:详细教程
    Elasticsearch是一个开源的分布式搜索引擎,它能够快速地存储、搜索和分析大量的文本数据。它基于ApacheLucene构建,广泛应用于日志分析、全文搜索、推荐系统等场景。本文将详细介绍如何在Java项目中集成Elasticsearch,包括如何配置、索引文档、查询数据、以及与Elasticsea......
  • 海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践
    文章目录一.迁移背景二.迁移分析三.方案制定3.1使用工具迁移3.2脚本迁移四.方案建议一.迁移背景目前有两个es集群,版本为5.2.2和7.16.0,总数据量为700T。迁移过程需要不停服务迁移,允许一小时不写数据,但是需要提供数据存储方案。迁移到opensearch的版本为1.3.4。二.迁移分......
  • elasticsearch 常用搜索总结
    match_all它不包含任何条件,通常用于返回索引中的所有文档GET/index/_search{"query":{"match_all":{}}}match用于执行全文本搜索。它可以对文本字段进行模糊匹配,支持分词器处理后的词项匹配GET/index/_search{"query":{"match":{......
  • Ubuntu安装elasticsearch遇到的问题
    问题:解决办法:找不到以上问题的原因,似乎是没安装成功。尝试用apt的方式再次安装如上图,应该是安装成功了。问题2:运行curl-XGET"localhost:9200"没有返回预期结果,返回的结果是curl:(52)Emptyreplyfromserver解决办法:查看log日志详细信息为[2024-11-05T16:28:40,8......
  • ElasticSearch备考 -- Manage the index lifecycle (ILM)
    一、题目在集群中,数据首先分布在data_hot节点,rollover设置max_age:3d,max_docs:5,max_size:50gb,优先级为100。max_age:15s,forcemarge段合并,数据迁移到data_warm节点,副本数为0,优先级为50max_age:30s,数据从data_warm迁移到data_cold节点max_age:60s,数据删除运......
  • 初学elasticsearch——除了CRUD之外我还需要关注es的哪些问题
    1.倒排索引是如何工作的倒排索引中主要有词条和文档两个概念:词条是分词后产生的词语,每条数据都有对应的文档(被序列化好的json串)倒排索引就是把词条、文档ID记录下来,每当出现一个重复的词条都会追加在文档ID如下图,词条是不会重复的 在查询的时候,我们会先对搜索内容进行分词,根......
  • springboot集成ElasticSearch使用completion实现补全功能
    @目录摘要springboot代码依赖代码kibana代码第一部分:设置index、type、mapping第二部分:批量插入第三部分:执行第四部分:结果展示本人先关其他文章链接摘要所谓自动补全功能就是“百度搜索框”中每敲下一个字符下面的提示框就会动态改变提示的功能,就是下面的效果:↓说明:使用RestH......
  • ElasticSearch7.6.x 模板及滚动索引创建及注意事项
    @目录声明:举例说明创建模板+设置滚动索引+读写判断模板是否存在创建模板应用模板创建索引设置滚动索引添加文档,使用“写”别名查询,使用“读”别名本人先关其他文章链接声明:注意点1:滚动索引是设置索引,而非创建索引,且设置一次结果返回"rolled_over":true,则会按照设定规则创建......