首页 > 其他分享 >Elasticsearch(一)

Elasticsearch(一)

时间:2024-10-15 21:00:34浏览次数:1  
标签:-- 索引 Elasticsearch ES 分词 es

ES相关概念对比MySQL

Elasticsearch(ES):用于数据存储、计算和搜索

安装ES:

ES是部署在Linux操作系统下的,可以通过Docker去部署:首先引入ES的镜像,可以官网下载或者用docker pull 拉取

镜像可以执行该命令,注意es版本

docker run -d \
  --name es \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "discovery.type=single-node" \
  -v es-data:/usr/share/elasticsearch/data \
  -v es-plugins:/usr/share/elasticsearch/plugins \
  --privileged \
  --network hm-net \
  -p 9200:9200 \
  -p 9300:9300 \
  elasticsearch:7.12.1

安装完成可以通过ip+端口查看

同时需要部署Kibana,作为ES可视化界面,一样是部署在Linux操作系统中

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=hm-net \
-p 5601:5601  \
kibana:7.12.1

同样安装完成可以通过ip+端口查看

ES与MYSQL区别:

首先是两种不同的数据库系统,MySQL是一种关系型数据库管理系统用于存储结构化数据,它适合于需要强一致性和事务支持的应用程序。Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,适用于处理非常大的文本数据集。它专注于全文搜索、实时数据分析和日志搜索等用途,支持全文搜索和复杂的数据分析查询‌。对比如下:

倒序索引:

概念和应用场景

倒排索引的概念是基于Mysql这种正向索引而言的,通常的SQL的索引语句在正向索引时可以通过子节点来索引来判断是否符合条件例如:”select * from table where 索引字段 like ‘%索引条件%’ “

因为是遍历逐行索引,因此所造成的效率也就比较低,而且当模糊查询时需要精准的匹配条件,当条件较为模糊时可能就会匹配不到。举个例子:一个库存表索引,当我们模糊匹配某个精准的条件,如鱼竿,SQL语句可以快速搜索,匹配出满足条件的内容,如果此时的条件鱼竿,以空格衔接多个品牌,如化氏、天元、禧玛诺、达亿瓦...此时作为模糊查询条件,SQL语句也就无法满足我们的需求了,也就引出了倒序索引。

倒序索引的原理:
  • 先生成词条库,将文档内容进行分词,文档的id与词条行程对应的关系,词条具有唯一性。
  • 对需要搜所的内容进行分词,然后组成一个关键词列表,再用这个列表去词库匹配,找的对应的文档id列表
  • 因为词条的唯一性再正向索引进行查找

打个比喻,四大发明活字印刷术,文档分出的词就和汉字一样,这些汉字是独立的,但是可以组词、组句(第一段的分词),当我们需要印刷一句话:“我爱中国”,要找“我”,“爱”,“中国”(此时也就是索引内容分词),然后去挑选模版库中选字印刷(也就对应了去词库中查找)可以看图理解一下

标签:--,索引,Elasticsearch,ES,分词,es
From: https://www.cnblogs.com/aixiaoqing/p/18468431

相关文章

  • ElasticSearch的倒排索引和相关概念与MySQL的对比
    ElasticSearch的倒排索引和相关概念在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率。在关系型数据库中,我们一般都采用B树索引进行存储,所以B树索引也是我们接触比较多的一种索引数据结构,但是在使用过程中,我们发现无法使用关系型数据库进行类......
  • Elasticsearch 倒排索引,ES相关概念对比MySQL
    elasticsearch之所以有如此高性能的搜索表现,正是得益于底层的倒排索引技术。什么是倒排索引?倒排索引的概念是基于MySQL这样的正向索引而言的。倒排索引中有两个非常重要的概念:文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息词条(Te......
  • Elasticsearch相关概念对比MySQL
    Elasticsearch相关概念对比MySQLElasticsearch中,文档指的是每一条数据,例如:我喜欢你。词条指的是将文档拆分成有意义的词语,例如之前的文档可拆成4个词条:我、喜欢、你。MySql中的概念Elasticsearch中的概念Table表Index索引,文档的集合Row一行行数据Document文档......
  • Elasticsearch介绍
    Elasticsearch是一个分布式搜索和分析引擎,通常用于处理大规模的结构化和非结构化数据。它基于开源的Lucene库,提供了强大、实时的搜索能力和精细的分析功能。Elasticsearch通常与其他工具(如Logstash、Kibana等)一起使用,构成了著名的ELKStack(后来改名为ElasticStack)。完整......
  • Elasticsearch
    什么是ElasticsearchElasticsearch是一个基于ApacheLucene的分布式搜索和分析引擎。它提供了一个功能强大、实时的数据存储、检索和分析的平台,尤其适合处理结构化和非结构化数据。它在大数据处理、全文搜索****、实时日志分析、监控等场景下应用广泛。核心概念索引(Index):相......
  • Elasticsearch正向索引与倒排索引
    Elasticsearch正向索引与倒排索引一、正向索引首先,要明白什么是正向索引,所谓正向索引,就是在查找某项数据时,按照id一条一条查找,如果当前数据中包含所需数据,则将当前数据取出,不包含则抛弃,直至全部遍历结束。例如:当我们按照正向索引去寻找包含小米三星苹果的数据时,会从头遍历一遍,......
  • Elasticsearch相关概念对比MySQL
    MySQLElasticsearch说明TableIndex索引(index),就是文档的集合,类似数据库的表(table)RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)SchemaMappingMappi......
  • Elasticsearch相关概念对比MySQL
    Elasticsearch和MySQL是两种不同的数据管理系统,各自有其独特的概念和应用场景。以下是它们在几个关键概念上的对比:o数据模型Elasticsearch:。文档(Document):基本的数据单元,存储为JSON格式。。索引(Index):类似于数据库,包含多个文档。。类型(Type):在7.x版本后已被弃用,之前用于逻......
  • 【Elasticsearch系列】Elasticsearch启动失败问题
    ......
  • Elasticsearch 基础入门
    查询集群文档数量查询集群文档数量curl-XGET-k-uelastic:passwd-H'Content-Type:application/json''https://localhost:9200/_count?pretty'curl-i显示响应头信息curl-XGET-i-k-uelastic:passwd-H'Content-Type:application/json''https:......