首页 > 其他分享 >elasticsearch

elasticsearch

时间:2023-06-14 11:56:19浏览次数:43  
标签:倒排 单词 索引 文档 elasticsearch 分词

0. 简介

https://www.elastic.co/cn/what-is/elasticsearch
全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。

img

Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。REST API:天然的跨平台。

1. 基本概念

  • index(索引)相当于MySQL中的Database
  • Type(类型)相当于MySQL中的表
  • Document(文档) 相当于表中的内容

2. 倒排索引机制

Elasticsearch 使用倒排索引(Inverted Index)机制来支持快速的全文搜索和高效的搜索引擎功能。倒排索引是一种数据结构,它将文档中的每个单词映射到包含该单词的文档列表,以及该单词在每个文档中的位置信息。

以下是倒排索引的工作原理:

  1. 分词:在建立倒排索引之前,文本被分割成单词或术语,这个过程称为分词。分词可以根据特定的分析器和标记化规则进行,以确保准确的单词提取。

  2. 构建索引:对于每个文档,将分词后的单词与文档的唯一标识符关联起来,并记录每个单词在文档中的位置信息。这个过程称为构建索引或创建倒排索引。

  3. 倒排索引表:倒排索引表是一个映射结构,它将每个单词映射到包含该单词的文档列表。对于每个单词,可以获取相关的文档列表。

  4. 搜索:当执行搜索查询时,Elasticsearch 将查询词(或短语)进行分词,然后在倒排索引表中查找匹配的单词,并获取相关的文档列表。使用倒排索引,可以快速确定哪些文档包含查询词,并按相关性排序结果。

倒排索引在搜索引擎中的好处是,它可以在很短的时间内定位包含特定词语的文档,从而实现高效的全文搜索。此外,倒排索引还支持其他功能,如词项权重计算、短语匹配、聚合和过滤等。

Elasticsearch 使用倒排索引作为其核心索引机制,并通过高度优化和分布式处理来提供快速和可伸缩的搜索功能。

3. 安装

3.1 下载镜像

docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化检索数据

3.2 运行容器

cd /usr/local/docker
mkdir elasticsearch
mkdir config
mkdir data
cd config
echo "http.host:0.0.0.0" >> elasticsearch.yml

标签:倒排,单词,索引,文档,elasticsearch,分词
From: https://www.cnblogs.com/cxpress/p/17479798.html

相关文章

  • Elasticsearch专题精讲—— Aggregations(聚合)
    Aggregations(聚合)https://www.elastic.co/guide/en/elasticsearch/reference/8.8/search-aggregations.html#search-aggregationsAnaggregationsummarizesyourdataasmetrics,statistics,orotheranalytics.Aggregationshelpyouanswerquestionsl......
  • Elasticsearch自签证书
    ****如果方式适合安装时没有配置及证书相关配置,而安装后进行的证书自签一、自签证书1、进入工作目录进入容器,bin目录下有生成证书的脚本,路径下文件展示如下(我这里是以docker容器部署的模式演示的)[root@363474ada611elasticsearch]#llbin/total19604-rwxr-xr-x.1......
  • Elasticsearch8 单机以及集群部署(docker-compose)
    本文以Elasticsearch8.8.0为例,介绍一下单机安装ES,使用docker-compose方式进行便捷管理需要准本docker环境:一键安装脚本 https://www.cnblogs.com/Alay/p/15433473.html需要准备docker-compose环境:一键安装脚本 https://www.cnblogs.com/Alay/p/15433907.html官网阅......
  • 对比 redis cluster 和 elasticsearch
    一.对比redis提供了redissentinal的高可用策略,以及rediscluster来支持扩展性(同时也支持高可用)。rediscluster,ealsticsearch都属于有状态数据存储服务,这里做一个简单的对比。特性redisclusterelasticsearch 备注主要设计目标在保证highperformance的条件下,提......
  • flume+elasticsearch
    简单描述一下这个例子:将项目日志实时采集到elasticsearch,便于统一管理。1.收集日志格式为:log4j.properties: org.apache.log4j.Logger: %d{ISO8601}[%l-%M]-[%p]%t%m%nlogback.xml:org.slf4j.Logger:  %date[%logger:%L]-[%level]%thread%msg%n2.flume1.7.0(flume......
  • elasticsearch迁移
    #第一种办法:elasticdump#先升级elasticdump参考https://www.dianjilingqu.com/634305.html1.下载node.js的安装包http://wgethttps://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.gz2.解压安装包tarxfnode-v10.13.0-linux-x64.tar.gzmvnode-v10.13.0-linu......
  • linux命令行elasticsearch查询工具es2unix
    当想在linux的命令行中查看elasticsearch的状态时,可以用es2unix这个工具,插件地址: https://github.com/elasticsearch/es2unix。它是elasticsearch官方推出的,可以通过命令来查看es的各种状态,安装方法curl-sdownload.elasticsearch.org/es2unix/es>/bin/eschmod+x/bin/es这......
  • Linux搭建elasticsearch 7.x 版本
     安装方式传统方式根据平台系统Windows、linux、mac下载安装包以linux为例,进入到想安装的目录位置,下载安装包并解压#进入安装目录cd/home#下载安装包wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-linux-x86_64.tar.gz#解压tar-z......
  • Elasticsearch专题精讲—— REST APIs —— Document APIs —— Reindex API —— 跨
    Reindexfromremote(跨集群索引)https://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-reindex.html#reindex-from-remoteReindexsupportsreindexingfromaremoteElasticsearchcluster:Reindex支持从远程Elasticsearch集群进行重新索引:curl-XP......
  • Elasticsearch 修改字段类型
    由于ES不能像关系型数据库直接修改类型,所以要借助中间索引来完成1、创建中间索引(字段维护正确的)put:https://localhost/track_bak{"settings":{"index":{"number_of_shards":"3","number_of_replicas":"1&quo......