28.1 kibana

news/2024/11/29 8:00:13/

        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 分词器 


http://www.ppmy.cn/news/979142.html

相关文章

Python版day57

647. 回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0…

Flask如何使用蓝图来组织和管理应用程序的路由和视图函数?

在Flask中&#xff0c;蓝图是一种非常方便的工具&#xff0c;可以帮助我们组织和管理应用程序的路由和视图函数。从新手的角度来看&#xff0c;我们可以把蓝图想象成一个超级市场&#xff0c;所有的商品都井然有序地摆放在货架上&#xff0c;我们可以在需要的时候轻松地找到我们…

OpenWebtext数据集

paper:Aaron Gokaslan, Vanya Cohen, Pavlick Ellie, and Stefanie Tellex. Openwebtext corpus, 2019. 用于GPT2训练的文本数据,GPT2主要是生成文本的,只有足够多的数据训练的模型才能学会说话,生成的才有可能是通顺的。GPT2文本生成可以采用huggingface中代码直接进行训…

机器学习:GPT3

GPT3 模型过于巨大 GPT3是T5参数量的10倍&#xff01; 训练GPT3的代价是$12百万美元 Zero-shot Ability GPT3的思想是不是能拿掉Fine-tune 只需要给定few-shot或者zero-shot就能干相应的任务了。 few-shot learning&#xff08;no gradient descent&#xff09;&#…

Qt应用开发(基础篇)——QComboBox

目录 一、前言 二、属性和方法 三、信号 一、前言 QComboBox继承于QWidget&#xff0c;作为Qt Wdiget常用的控件&#xff0c;在实际开发中&#xff0c;经常用来作为某些特定参数属性的选择&#xff0c;比如语言、国家、字体、主题、模式、串口号、波特率等选择性…

【雕爷学编程】Arduino动手做(87)---ULN2003步进电机模组2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Elasticsearch 映射Mappings (三)

文章目录 前言一、Mapping简介查看索引映射 二、自动映射 dynamic mapping自动类型推断mapping注意点 三、手动映射 Expllicit mapping创建索引 四、自动映射模板 Dynamic Templates定义映射模板规则判定&#xff1a;conditlonsmatch_mapping_typematch、unmatchpath_match、pa…

华为战略方法论:BLM模型之关键任务与依赖关系

内容简介 在 BLM 模型中&#xff0c;执行部分包括四个模块&#xff0c;分别是&#xff1a; 关键任务与依赖关系&#xff1b;组织与绩效&#xff1b;人才&#xff1b;氛围与文化。 详细内容&#xff0c;大家可以参看下面这张图。 这四个模块其实是可以进一步划分成两个关键点…