elasticsearch的基本用法

GET _search
{"query": {"match_all": {}}
}GET _cat/indices#保存数据带id,put必须要带id
PUT customer/external/1
{"name":"杰克"
}POST customer/external
{"name":"张三"
}#查询数据  哪个索引下,哪个类型,哪条数据(id)GET customer/external/1#查询全部
GET customer/external/_search# "_seq_no" 和_primary_term可以用来控制并发(乐观锁)
#例如两个线程同时修改customer/external/1的数据
PUT customer/external/1?if_seq_no=1&if_primary_term=1
{"name":"杰克1"
}PUT customer/external/1?if_seq_no=1&if_primary_term=1
{"name":"杰克2"
}#更新内容(会对比原数据,如果更新的数据跟原来的数据一样,那么返回"result" : "noop")
POST customer/external/1/_update
{"doc":{"name":"杰克更新doc"}
}#更新内容,不会检查原来的数据,每次都更新
POST customer/external/1
{"name":"杰克post更新"
}
PUT customer/external/1
{"name":"杰克put更新"
}#删除文档索引
DELETE customer/external/1#bulk 批量api
#语法格式
#{action:{metadata}}
#{request body}
POST customer/external/_bulk
{"index":{"_id":"1"}}
{"name":"杰克bulk"}
{"index":{"_id":"2"}}
{"name":"2号杰克"}#导入es官方的测试数据
GET bank/account/_search
POST bank/account/_bulk
{"index":{"_id":"1"}}
{"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"amberduke@pyrami.com","city":"Brogan","state":"IL"}
{"index":{"_id":"6"}}
{"account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"hattiebond@netagy.com","city":"Dante","state":"TN"}
{"index":{"_id":"13"}}
#.....#查询bank索引下的全部,条件q=*(所有),排序根据account_number降序
GET bank/_search?q=*&sort=account_number:asc#另一种方式query DSL
GET bank/_search
{"query": {"match_all": {}},"sort": [{"account_number": "asc"}]
}#从第一条记录,取两条
GET bank/_search
{"query": {"match_all": {}},"sort": [{"account_number": "asc"}],"from": 0,"size": 2
}#查询返回的字段_source,("lastname","age","email")
GET bank/_search
{"query": {"match_all": {}},"sort": [{"account_number": {"order": "desc"}}],"from": 0,"size": 2,"_source": ["lastname","age","email"]
}#查询匹配的值mach,匹配名字为Barron的数据。(mach相当于模糊查询)
GET bank/_search
{"query": {"match": {"lastname": "Barron"}}
}#匹配完整的,不会分词
GET bank/_search
{"query": {"match_phrase": {"lastname": "Bond"}}
}#多字段匹配(email或者address匹配mill的都查询出)
GET bank/_search
{"query": {"multi_match": {"query": "mill","fields": ["email","address"]}}
}#复合查询bool(must必须满足才行)匹配gender为M和address为mill的
GET bank/_search
{"query": {"bool": {"must": [{"match": {"gender": "M"}},{"match": {"address": "mill"}}]}}
}#must_not 必须不匹配
GET bank/_search
{"query": {"bool": {"must": [{"match": {"gender": "M"}}],"must_not": [{"match": {"address": "mill"}}]}}
}#should 应该匹配 可以匹配 可以不匹配 匹配最好 可以加分 不匹配也没事 相当于加分项
GET bank/_search
{"query": {"bool": {"must": [{"match": {"gender": "M"}}],"must_not": [{"match": {"address": "mill"}}],"should": [{"match": {"address": "647"}}]}}
}#查询年龄范围 大于等于18小于等于20
GET bank/_search
{"query": {"bool": {"must": [{"range": {"age": {"gte": 18,"lte": 20}}},{"match": {"address": "647"}}]}}
}#结果过滤 filter 不提供相关性得分
GET bank/_search
{"query": {"bool": {"must": [{"range": {"age": {"gte": 18}}}],"filter": {"range": {"age": {"gte": 18,"lte": 20}}}}}
}#term检索精确字段  非文本字段 
GET bank/_search
{"query": {"term": {"balance": {"value": "39868"}}}
}#聚合函数-搜索address中包含mill的所有人的年龄分布及平均年龄
GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAGG": {"terms": {"field": "age","size": 10}}}
}#再聚合一个平均年龄
GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAGG": {"terms": {"field": "age","size": 10}},"ageAvg":{"avg": {"field": "age"}}}
}#这里的size等于0相当于只看聚合结果 数据hits不展示
GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAGG": {"terms": {"field": "age","size": 10}},"ageAvg":{"avg": {"field": "age"}}},"size": 0
}GET bank/_search#子聚合-先按年龄进行分布 然后再在这些年龄里进行聚合每个年龄段的人的查询平均工资是多少
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10},"aggs": {"balanceAvg": {"avg": {"field": "balance"}}}}},"size": 0
}#求出age的分布情况,再这基础上再求出gender的分布情况,再求出每一个gender的平均工资是多少
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10},"aggs": {"genderAgg": {"terms": {"field": "gender.keyword","size": 10},"aggs": {"balanceAvg": {"avg": {"field": "balance"}}}}}}},"size": 0
}#查看映射
GET bank/_mapping#创建索引并且指定索引类型
PUT /my_index
{"mappings": {"properties": {"age":{"type": "integer"},"email":{"type": "keyword"},"name":{"type": "text"}}}
}#再添加映射中的新字段(index:false不需要索引)
PUT /my_index/_mapping
{"properties": {"employee": {"type": "keyword","index": false}}
}GET /my_index/_mapping
GET bank/_mapping
GET bank/_search#创建一个新的映射
PUT /newbank
{"mappings" : {"properties" : {"account_number" : {"type" : "long"},"address" : {"type" : "text"},"age" : {"type" : "integer"},"balance" : {"type" : "long"},"city" : {"type" : "keyword"},"email" : {"type" : "keyword"},"employer" : {"type" : "keyword"},"firstname" : {"type" : "text"},"gender" : {"type" : "text"},"lastname" : {"type" : "text"},"state" : {"type" : "keyword"}}}
}#修改映射(要修改只能创建新的索引,然后把数据迁移到新创建的索引)
POST _reindex
{"source": {"index": "bank","type": "account"},"dest": {"index": "newbank"}
}GET /newbank/_search#分词
POST _analyze
{"analyzer": "standard","text": "你好,我是小短腿"
}#使用ik分词器(要先装好插件)
POST _analyze
{"analyzer": "ik_smart","text": "小短腿这是我的测试项目小阿giao"
}

ik分词器安装地址:https://release.infinilabs.com/analysis-ik/stable/
#在html文件夹下面创建一个文件夹es,用来存放分词
/myproject/nginx/html/es/fenci.txt
例如:
小短腿
小阿giao

#修改es中ik分词器的配置IKAnalyzer.cfg.xml
/myproject/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml
#设置分词器的位置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典 --><entry key="ext_dict"></entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典 --><entry key="remote_ext_dict">http://192.168.10.128/es/fenci.txt</entry><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 部署 Harbor 镜像仓库详解

文章目录 安装 Docker安装 Harbor访问 Harbor 安装 Docker 本次部署流程使用的是1台阿里云ECS&#xff0c;Ubuntu 22.04&#xff0c;2核4G。 首先需要做的是在当前服务器上&#xff0c;安装好 Docker&#xff0c;参考链接如下&#xff1a; https://blog.csdn.net/weixin_4659…

ESD防静电闸机如何保护汽车电子产品

随着汽车电子技术的快速发展&#xff0c;汽车中集成了越来越多的电子设备&#xff0c;如车载信息娱乐系统、自动驾驶传感器、驾驶辅助系统等。静电放电可能导致电子组件的损坏、性能下降&#xff0c;甚至使整个系统失效。因此&#xff0c;如何有效保护汽车电子产品免受静电损害…

【【自动驾驶】车辆运动学模型】

【自动驾驶】车辆运动学模型 1. 引言2. 以车辆重心为中心的单车模型2.1 模型介绍2.2 滑移角 β \beta β 的推导2.2 航向角 ψ \psi ψ推导过程&#xff1a;2.3 滑移角 β \beta β2.3 Python代码实现2.4 C代码实现 3. 前轮驱动的单车模型3.1 模型介绍3.3 Python代码实现3.4 …

软件I2C的代码

I2C的函数 GPIO的配置——scl和sda都配置为开漏输出 void MyI2C_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitTypeDef GPIO_InitStruture;GPIO_InitStruture.GPIO_Mode GPIO_Mode_Out_OD;GPIO_InitStruture.GPIO_PinGPIO_Pin_10 | GPIO_Pin_…

Debug-029-el-table实现自动滚动分批请求数据

前情提要 最近做了一个小优化&#xff0c;还是关于展示大屏方面的。大屏中使用el-table展示列表数据&#xff0c;最初的方案是将数据全部返回&#xff0c;确实随着数据变多有性能问题&#xff0c;有时请求时间比较长。这里做的优化就是实现列表的滚动到距离底部一定高度时再次请…

【银河麒麟高级服务器操作系统实例】金融行业TCP连接数猛增场景的系统优化

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 服务器环境以及配置 物理机/虚拟机/云/容器 物理…

项目实战:Qt+OpenCV仿射变换工具v1.1.0(支持打开图片、输出棋盘角点、调整偏移点、导出变换后的图等等)

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/143105881 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、Op…

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

一.安装雷电模拟器 雷电模拟器官网 直接下载安装即可 &#xff08;1&#xff09;打开必要权限 雷电模拟器的设置已完毕 二.安装adb工具 本文以autox.js来实现adb操作 &#xff08;1&#xff09;vscode中下载auto.js插件 &#xff08;2&#xff09;雷电模拟器下载autox.j…

【大模型实战篇】大模型分词算法Unigram及代码示例

1. 算法原理介绍 与 BPE 分词&#xff08;参考《BPE原理及代码示例》&#xff09;和 WordPiece 分词&#xff08;参考《WordPiece原理及代码示例》&#xff09;不同&#xff0c;Unigram 分词方法【1】是从一个包含足够多字符串或词元的初始集合开始&#xff0c;迭代地删除其中的…

Spring Boot Druid 数据库连接池入门

1. Druid 单数据源 1.1 引入依赖 在 pom.xml 文件中&#xff0c;引入相关依赖。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-insta…

《异常处理与资源管理:构建稳定程序的关键纽带》

#1024程序员节&#xff5c;征文# 在软件开发的广袤领域中&#xff0c;异常处理和资源管理如同两座坚实的基石&#xff0c;共同支撑着程序的稳定运行。它们之间的关系紧密而微妙&#xff0c;对于构建可靠、高效的软件系统起着至关重要的作用。让我们深入探讨异常处理和资源管理…

idea项目搭建的四种方式: 一(以idea2017为例)

目录 1. 普通java项目 2. 普通JavaWEB项目 3. maven的JavaWEB项目 4. maven的java项目 1. 普通java项目 ①点击“Create New Project”&#xff1b; ②选择“Java”&#xff0c;选择自己安装的jdk&#xff0c;点击“Next”&#xff1b; ③填好项目名称和路径&#xff1b;…

【LeetCode】动态规划—2466. 统计构造好字符串的方案数(附完整Python/C++代码)

动态规划—2466. 统计构造好字符串的方案数 题目描述前言基本思路1. 问题定义举例&#xff1a; 2. 理解问题和递推关系动态规划思想&#xff1a;状态定义&#xff1a;状态转移方程&#xff1a;边界条件&#xff1a; 3. 解决方法动态规划方法伪代码&#xff1a; 4. 进一步优化5.…

MATLAB图像检索系统

MATLAB图像检索系统应用背景 基于内容的图像检索&#xff08;CBIR&#xff09;是一个非常热门的研究领域。本文在对颜色特征、形状特征和纹理特征的研究基础上&#xff0c;将三种特征结合在一起&#xff0c;实现了可以自定义权重的综合特征的图像检索系统&#xff0c;并在 平…

推动AI技术研发与应用,景联文科技提供专业高效图像采集服务

景联文科技提供专业图像采集服务&#xff0c;涵盖多个领域的应用需求。 包含人体图像、人脸图像、手指指纹、手势识别、交通道路、车辆监控等图像数据集&#xff0c;计算机视觉图像数据集超400TB&#xff0c;支持免费试采试标。 高质量人像采集服务&#xff1a;支持不同光线条件…

网络知识总结

osi七层模型 osi七层模型分为&#xff1a;应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层 应用层&#xff1a;客户端与服务端之间建立一个通话界面表示层&#xff1a;对数据进行语言转换&#xf…

【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算

文章目录 凹凸映射法线纹理设置高度纹理&#xff08;Height Map&#xff09;法线纹理&#xff08;Normal Map&#xff09;模型空间的法线纹理切线空间的法线纹理优劣对比 切线空间下的法线纹理光照计算最终效果完整代码TANGENT语义内置宏 TANGENT_SPACE_ROTATIONObjSpaceLightD…

028.魔改浏览器-抓取closed的shadowRoot下的内容

一、什么是Shadow DOM Shadow DOM是一种在web开发中用于封装HTML标记、样式和行为的技术&#xff0c;以避免组件间的样式和脚本冲突。它允许开发者将网页的一部分隐藏在一个独立的作用域内&#xff0c;从而实现更加模块化和可维护的代码结构 二、js操作Shadow DOM // 获取宿…

【火山引擎】AIGC图像风格化 | 风格实践 | PYTHON

目录 1 准备工作 2 实践 代码 效果图 1 准备工作 ① 服务开通 确保已开通需要访问的服务。您可前往火山引擎控制台,在左侧菜单中选择或在顶部搜索栏中搜索需要使用的服务,进入服务控制台内完成开通流程。

云手机:社交平台运营的热门工具

随着互联网的飞速发展&#xff0c;社交平台已经成为企业推广和营销的核心渠道。传统的运营方式已经无法满足高效运营的需求&#xff0c;而云手机作为新兴工具&#xff0c;逐渐成为社交平台运营的前沿趋势。本文将深入分析云手机如何优化社交平台的运营流程&#xff0c;助力企业…