elasticsearch的一些小知识点

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: elasticsearch的一些小知识点

这个假期有多少人新添了一份职业「云监工」,又有多少人干起了小区保安的工作(统计着进出小区的车辆),还有一些人无聊到数火龙果的「黑芝麻」...... 实不相瞒,我也一样,只不过无聊之际,偶尔看看书。之前对于 elasticsearch 介绍过一些常用的 API,今天再做一些额外的补充。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

「云监工」:网络流行词,来源于央视频直播武汉开建的防治传染病医院火神山医院的建设工地,网友们虽然不能到现场出把力,但也给自己加了一个身份:云监工,通过直播镜头去“监督”医院的建设进度。

小区保安工作:很多人在家无聊,自觉统计着出入小区人员车辆数量,以帮助监督是否有人在疫情期间四处乱逛。

数火龙果的籽:这个起源于网友晒出的图片,为一个火龙果所有的籽标上了序号。

1.短语搜索

之前向大家介绍了模糊搜索 match ,现在又有了很多复杂的需求:确切的匹配若干个单词(同一字段的值中包含多个词)或者短语。这就用到了一个新的方法 match_phrase,官方示例如下:

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    }
}

上述语句查询 about 字段中同时包含 rockclimbing(并且是相邻的)的员工记录。match_phrase 方法也可以用于匹配短语(phrases)

有一些新来的小伙伴,可能对于上面的表达不是十分清楚,下面详细介绍一下。GET 表示请求方式,/megacorp/employee/_search 表示访问路径 PATH,大括号中的内容即 DSL 语句。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

1.1 API 访问方式

curl

elasticsearch 进行交互时,可以通过 crul 方式,与其他普通的 HTTP 请求相同:


curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

VERB 表示请求方式:GET, POST, PUT, HEAD, DELETE

PROTOCOL 表示访问协议,如 HTTP / HTTPS (只有在 Elasticsearch 前面有 https 代理的时候可用)

HOST 表示 Elasticsearch 集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫 localhost

PORT 表示 Elasticsearch HTTP 服务所在的端口,默认为 9200

PATH 表示 API 路径,也就是示例中的 /megacorp/employee/_search

QUERY_STRING 表示一些可选的查询请求参数,例如 ?pretty 参数使得返回 JSON 数据更加美观易读。

BODY 一个 JSON 格式的请求主体(如果请求需要的话)

postman

大家经常使用到的工具,通过输入请求 url 以及根据需要填写 DSL 语句做为请求体,进行访问。

其他

任何其他发送 HTTP 请求的方式更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

2.搜索结果高亮

故名思义,我们可以将搜索到的文档中匹配到的关键词进行高亮显示。它最大的作用就是醒目,让你一眼发现这个文档被匹配的原因。语句也很简单,只需要在之前的查询语句上增加 highlight参数:

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    },
    "highlight": {
        "fields" : {
            "about" : {}
        }
    }
}

当我们运行这个语句时,会命中与之前相同的结果,但是在返回结果中会有一个新的部分叫做 highlight,这里包含了来自about字段中的文本,并且用 <em></em>来标识匹配到的单词。

{
   ...
   "hits": {
      "total":      1,
      "max_score":  0.23013961,
      "hits": [
         {
            ...
            "_score":         0.23013961,
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            },
            "highlight": {
               "about": [
                  "I love to go <em>rock</em> <em>climbing</em>" <1>
               ]
            }
         }
      ]
   }
}
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5月前
|
存储 自然语言处理 算法
干货 Elasticsearch 知识点整理二
干货 Elasticsearch 知识点整理二
|
存储 自然语言处理 运维
Elasticsearch知识点回顾
Elasticsearch知识点回顾
95 0
|
存储 JSON 数据可视化
看完保送阿里的Elasticsearch知识点(入门篇2)
看完保送阿里的Elasticsearch知识点(入门篇)
158 0
看完保送阿里的Elasticsearch知识点(入门篇2)
|
存储 NoSQL Java
看完保送阿里的Elasticsearch知识点(入门篇1)
看完保送阿里的Elasticsearch知识点(入门篇)
162 0
看完保送阿里的Elasticsearch知识点(入门篇1)
|
自然语言处理 前端开发 搜索推荐
Elasticsearch入门必知知识点 | 开发者社区精选文章合集(二十七)
如何学好 Elasticsearch?这些知识点你得知道,来看Elasticsearch零基础入门手册!
Elasticsearch入门必知知识点 | 开发者社区精选文章合集(二十七)
|
10天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
25 5
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
117 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
3月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。