28.1 kibana

        Kibana 是一个免费且开放的用户界面,能够对 Elasticsearch 数据进行可视化操作,从跟踪查询负载,到理解请求如何流经整个应用,都能轻松完成。

1.Kibana安装

        注意要与ES版本保持一致

https://www.elastic.co/downloads/past-releases#kibanahttps://www.elastic.co/downloads/past-releases#kibana

        进入kibana-8.8.2的config文件夹配置,修改kibana.yml配置文件。

        第6、11、43行设置以下内容

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

        然后运行kibana.bat文件,访问网页

http://localhost:5601http://localhost:5601

2.使用调试工具

2.1 点击management

image-20230715121232332

2.2 点击Index Management,进入索引管理的页面

image-20230715121348985

2.3 点击dev tools,和ES进行交互

image-20230715121700513

通过控制台发送请求ES。

GET /job/_mapping

image-20230715124631838

3.Kibana操作

3.1 索引的操作

①创建索引

PUT goods

②查询索引

GET goods

GET _cat/indices?v

③删除索引

DELETE goods

④创建索引并指定映射关系

PUT goods
{
    "mappings": {
        "properties": {
            "id": {
                "type": "long"
            },
            "title": {
                "type": "text"
            },
            "brand": {
                "type": "keyword"
            }
        }
    }
}

3.2 文档的操作

①添加文档

POST /goods/_doc/1
{
    "id": 1001,
    "title": "mate40",
    "brand": "华为"
}
POST /goods/_doc/2
{
    "id": 1002,
    "title": "mate50",
    "brand": "华为"
}

②查询文档

#查询文档 GET /goods/_doc/1

#查询所有文档 GET /goods/_search

③修改文档

#全量修改
PUT /goods/_doc/1
{
    "id": 1000
}

PUT /goods/_doc/1
{
    "price": 4999
}
#局部修改
POST /goods/_update/1
{
    "doc": {
        "price": 5000
    }
}

④删除文档

DELETE /goods/_doc/2

4.match查询

        Match查询是一种基于全文本的查询方法,可以在一个或多个字段中搜索包含指定文本的文档。它会将查询字符串进行分词处理,然后对每个词进行匹配,从而找到所有匹配的文档。

4.1 添加测试数据

        使用Elasticsearch中的Bulk工具批量生成数据。

        ES中提供了批量导入接口Bulk,允许通过以下格式快速导入构建好的文档.接口格式如下

PUT _bulk
{ "index": { "_index": "job", "_id": "1999" }}
{"jid":1999,"title":"Java开发工程师","salary":{"gte":20000,"lte":30000},"city":"深圳","company":"深圳大疆","description":"..."}

index:代表操作类型,index重建索引 , create创建, delete删除

_index:代表指向索引名

_id:要操作的数据id

4.2 查询全部内容

GET /job/_search
{
    "query": {
        "match_all": {}
    },
    "from": 0,  #分页开始的位置,默认为0
    "size": 100 #期望获取的文档总数
}

4.3 非字符串精准查询

GET /job/_search
{
    "query": {
        "match": {
            "jid": 1005
        }
    }
}

4.4 字符串模糊查询

        查询title中包含开发的文档,title映射定义的数据类型为text,字段内容会被分析

GET /job/_search
{
    "query": {
        "match": {
            "title": "java"
        }
    }
}

        查询city包含的文档

GET /job/_search
{
  "query": {
    "match": {
      "city": "深"
    }
  }
}

        会发现查询结果是0条记录,原因是我们定义mapping映射,city属性的数据类型为keyword,只能通过精确值搜索到。我们分别搜索深圳北京,可以得到对应的结果。

4.5 排序

        按照jid降序排序

GET /job/_search
{
    "sort": [
        {
            "jid": "desc"
        }
    ]
}

4.6 分页

        查询5条数据

GET /job/_search
{
    ],
    "from": 0,
    "size": 5
}

4.7 查询指定字段

        通过"_source"指定需要查询哪些字段,多个字段用[]括起来。

GET /job/_search
{
    "_source": ["jid","title"]
}

4.8 多字段查询

        查询company与description包含“金融”的数据。

GET /job/_search
{
    "query": {
        "multi_match": {
            "query": "金融",
            "fields": ["company","description"]
        }
    }
}

4.9 单字段boolean查询

        boolean查询可以使用andor 作为条件组合。

        要求title同时出现java架构师两个词才满足条件。

GET /job/_search
{
    "query": {
        "match": {
            "title": {
                "query": "java 架构师",
                "operator": "and"
            }
        }
    }
}

5.范围查询

        查询薪水在5000~10000之间的数据。

GET /job/_search
{
    "query": {
        "range": {
            "salary": [
                {"gte":5000,"lte":10000}
            ]
        }
    }
}

        只要和文档数据产生交集便会被选中。

image-20230715193549571

6.bool字段复合查询

        bool把各种查询条件通过must(与)、must_not(非)、should(或)的方式进行组合

GET /job/_search
{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "company": "咨询"
                    }
                }
            ],
            "should":[
                {
                    "match": {
                        "company": "金融"
                    }
                }
            ],
            "must_not":[
                {
                    "match": {
                        "company": "科技"
                    }
                }
            ]
        }
    }
}

7.高亮

        服务端搜索数据,得到搜索结果,将搜索到的关键字部分加上约定好的标签,前端页面提前写好标签的CSS样式,即可高亮。

在使用match查询的同时,加上一个highlight属性:

  • pre_tags:前置标签

  • post_tags:后置标签

  • fields:需要高亮的字段

GET /job/_search
{
    "query": {
        "match": {
            "description": "springmvc"
        }
    },
    "highlight": {
        "pre_tags": "<font color='red'>",
        "post_tags": "</font>",
        "fields": {
            "description": {}
        }
    }
}

8.term查询

        term主要用于分词精确匹配,如字符串、数值、日期等未分词的数据。

GET /job/_search
{
    "query": {
        "term": {
            "city": {
                "value": "北京"
            }
        }
    }
}

        如下查询,得到的结果是0条数据。原因就是ES默认采用Standard Analyzer分词策略。英文按单词切分,中文字段分成一个一个汉字。

GET /job/_search
{
    "query": {
        "term": {
            "title": {
                "value": "工程师"
            }
        }
    }
}

        查看分词效果:

GET _analyze
{
    "analyzer": "standard",
    "text": "java开发工程师"
}

种分词策略对中文关键字搜索很不友好,推荐IK 分词器 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# 目标平台为x64,自定义控件不可用,显示控件未能加载,错误解决方法

由于项目加载第三方的dll需要编译成x64&#xff0c;设置编译目标为x64 结果打开窗口设计器时&#xff0c;自定义的控件不能显示及加载 错误消息&#xff1a;未能找到类型“XXX”。请确保已引用包含此类型的程序集。如果此类型为开发项目的一部分&#xff0c;请确保已使用针对当…

Android 在程序运行时申请权限——以自动拨打电话为例

Android 6.0及以上系统在使用危险权限时必须进行运行时权限处理。 main_activity.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://sche…

HDFS的文件块大小(重点)

HDFS 中的文件在物理上是分块存储 &#xff08;Block &#xff09; &#xff0c; 块的大小可以通过配置参数( dfs.blocksize&#xff09;来规定&#xff0c;默认大小在Hadoop2.x/3.x版本中是128M&#xff0c;1.x版本中是64M。 如果一个文件文件小于128M&#xff0c;该文件会占…

【C#】并行编程实战:使用 Visual Studio 调试任务

并行编程可以提高应用程序的性能&#xff0c;但是调试起来会更困难&#xff0c;这一点在之前的章节中我们已经有了很直观的感受。对于程序而言&#xff0c;保证程序的正确性和保证性能同样重要。 本章将介绍可以在 Visual Studio 中的调试工具&#xff08;包括 Thread 窗口、Ta…

Qt Core学习日记——第三天QMetaEnum(上)

QMetaEnum用来代表枚举信息,内部也是访问moc文件。从moc文件中得到对应值 需要在头文件中声明 Q_ENUM,如下红框部分 moc中qt_meta_stringdata_XTest变为&#xff1a; qt_meta_data_XTest变为 static const uint qt_meta_data_XTest[] { // content: 8, // revision 0, // …

(二)RabbitMQ【安装Erlang、安装RabbitMQ 、账户管理、管控台、Docker安装 】

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ【安装Erlang、安装RabbitMQ 、账户管理、管控台、Docker安装 】 文章目录 RabbitMQ【安装Erlang、安装RabbitMQ 、账户管理、管控台、Docker安装 】**安装Erlang**安装RabbitMQ账户管理管控台Docker安装RabbitM…

打家劫舍系列

class Solution { public:int dp[105];//dp[i]表示偷取前i个房间获取的最大值int rob(vector<int>& nums) {// // dp[i][0];不偷取第i间房&#xff0c;偷取前i-1间房的最大值// //dp[i][1];偷取第i间房&#xff0c;偷取前i间房的最大值// memset(dp,0,siz…

案例研究|DataEase助力亚加达智能医学实验室场景BI展示

深圳市亚加达信息技术有限公司&#xff08;以下简称为亚加达&#xff09;成立于2018年&#xff0c;是一家专注于医疗信息系统研发的高科技公司&#xff0c;隶属于亚辉龙集团。 亚加达深入理解医疗实验室业务和日常工作流程&#xff0c;通过物联网和大数据技术&#xff0c;基于…

ubuntu环境安装centos7虚拟机网络主机不可达,ping不通

【NAT模式下解决】1.首先vi /etc/sysconfig/network-scripts/ifcfg-ens33检查ONBOOTyes&#xff0c;保存 2.输入systemctl restart network命令重启网关

GBASE南大通用出席CCF第38届中国计算机应用大会

在数据要素市场化分论坛上&#xff0c;GBASE南大通用高级副总裁赵伟发表“以自主可控的国产基础软件新兴技术保障数据要素安全高效流通”的主题演讲&#xff0c;向参会嘉宾分享基于GBASE数据库的自主可控国产软件&#xff0c;保障数据要素安全流通、高效流转的创新实践。 赵伟讲…

Maven学习笔记

Maven学习笔记 一、MAVEN基础1.1、Maven作用1.2、Maven基础概念1.2.1、仓库1.2.2、坐标1.2.2、仓库配置 1.3、 手动写一个maven程序1.4、依赖管理1.5、生命周期与插件1.5.1、构建生命周期1.5.2、插件 一、MAVEN基础 1.1、Maven作用 Maven的本质是一个项目管理工具&#xff0c…

王道考研数据结构--4.3链队列

目录 前言 1.链队列的定义 2.链队列的结构 3.链队列的操作 3.1定义链队列 3.2初始化 3.3入队 3.4出队 3.5遍历求表长 3.6清空&#xff0c;销毁 4.完整代码 前言 日期&#xff1a;2023.7.25 书籍&#xff1a;2024年数据结构考研复习指导&#xff08;王道考研系列&…

Cesium态势标绘专题-自由多边形(标绘)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

蓝桥杯专题-真题版含答案-【加法变乘法】【三羊献瑞】【交换瓶子】【卡片换位】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

力扣 56. 合并区间

题目来源&#xff1a;https://leetcode.cn/problems/merge-intervals/description/ C题解&#xff1a;根据左区间排序&#xff0c;更新每一段的右区间最大值&#xff0c;直到间断。 class Solution { public:static bool cmp(vector<int> & a, vector<int> &a…

PHP 药店管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 药品管理系统 是一套完善的web设计系统,系统采用smarty框架进行开发设计&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 药店管理系统mysql数据库web结构apache计 下载地址…

Python实现九宫格数独小游戏

1 问题 有1-9个数字&#xff0c;将他们填入一个3*3的九宫格中&#xff0c;使得他们的每行&#xff0c;每列&#xff0c;以及对角线上的和相等&#xff0c;且要求每个格子的数字不可以重复。使用python列出所有可能的组合。示例如下: 2 方法 每行&#xff0c;列&#xff0c;对角…

Tomcat 的使用(图文教学)

Tomcat 的使用&#xff08;图文教学&#xff09; 前言一、什么是Tomcat&#xff1f;二、Tomcat 服务器和 Servlet 版本的对应关系三、Tomcat 的使用1、安装2、目录介绍3、如何启动4、Tomcat 的停止5、如何修改 Tomcat 的端口号6、如何部暑 web 工程到 Tomcat 中6.1 方式一6.2 …

什么是Java中的JVM(Java虚拟机)?

JVM&#xff08;Java虚拟机&#xff09;是Java平台的核心组件之一&#xff0c;是一个用于执行Java字节码的虚拟计算机。Java源代码经过编译器编译&#xff0c;生成字节码文件&#xff08;.class文件&#xff09;&#xff0c;然后由JVM来解释和执行这些字节码。JVM负责将字节码翻…

vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示

vue3tselement-plus axiosnode.jsmysql开发管理系统之表格展示 ✏️ 1. 新建一个node项目* 初始化node* 安装可能用到的依赖* 配置文件目录* 添加路由router1. 添加router.js文件&#xff0c;添加一个test目录2. 修改app.js ,引入router&#x1f4d2; 3. 启动并在浏览器打开 * …