Elasticsearch简单用法

ES Search流程 与GET/MGET ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作。 GET/MGET GET/MGET必须指定三元组:_index、_type、_id(http://127.0.0.1:9200/_index/_type/_id),也就是说,根据文档id从正排索引中获取内容。GET操作只能对单个文档进行处理,MGET是对GET的进一步封装(封装了多个GET请求),由_index,_type,_id三元组来确定唯一文档。 http://127.0.0.1: 阅读详情

基本命令

# 数据的顶层单位就是Index <=> 数据库
curl -XGET 'http://localhost:9200/_cat/indices?v'

# Index里面单条记录叫做文档Document,同一个Index当中的文档不要求有相同的结构,最好相同

# Type: Document分组,虚拟的逻辑分组

# 不同的Type应该有相似的schema

# 列出每个Index包含的Type
curl 'localhost:9200/_mapping?pretty=true'

新建和删除Index

curl -XPUT 'localhost:9200/weather'
curl -XDELETE 'localhost:9200/weather'

创建模板

curl -H "Content-Type: application/json" -XPUT 'localhost:9200/account' -d '
{
    "mappings": {
        "person": {
            "properties": {
                "user": {
                    "type": "text",
                    "analyzer": "ik_max_word"
                },
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word"
                },
                "desc": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                }
            }
        }
    }
}'

向指定的数据操作

  • 可以不指定Type
  • 可以不指定1
# 向指定的/Index/Type发送put请求
curl -H "Content-Type: application/json" -XPUT 'localhost:9200/account/person/1' -d '
{
    "user": "张三",
    "title": "工程师",
    "desc": "数据库guanli"
}' 

# 不指定id
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/account/person' -d '
{
    "user": "李四",
    "title": "工程师",
    "desc": "数据库db"
}'

# 如果没有先创建Index,直接执行上面的命令会直接生成指定的Index

查看记录

# 查看某条记录
curl 'localhost:9200/accounts/person/1?pretty=true'

# 删除某条记录
curl -XDELETE 'localhost:9200/account/person/1'

# 更新数据
curl -H"Content-Type: application/json" -XPUT 'localhost:9200/account/person/1' -d '
{
    "user": "李四",
    "title": "工程师",
    "desc": "数据库管理员"
}'

数据查询

# 查询改 Index:account, Type:person 下的所有的值
curl 'localhost:9200/account/person/_search'

全文搜索

# 指定匹配条件是 desc 字段含有“软件”这个词
curl -H"Content-Type: application/json" 'localhost:9200/account/person/_search' -d '
{
    "query": {"match": {"desc": "软件"}}
}'

# 指定返回条目
curl -H"Content-Type: application/json" 'localhost:9200/account/person/_search' -d '
{
    "query": {"match": {"desc": "数据库管理"}},
    "size": 1
}'

# 类似sql limit 1, 1
curl -H "Content-Type: application/json" 'localhost:9200/account/person/_search' -d '
{
    "query": {"match": {"desc": "数据库管理"}},
    "from": 0,
    "size": 1
}'

# or 
curl -H "Content-Type: application/json" 'localhost:9200/account/person/_search' -d '
{
    "query": {"match": {"desc": "数据库 管理"}}
}'

# and
curl -H "Content-Type: application/json" 'localhost:9200/account/person/_search' -d '
{
    "query": {
        "bool":{
            "must": [
                {"match": {"desc": "数据库"}},
                {"match": {"desc": "管理"}}
            ]
        }
    }
}'

上面检索会自动分词,如果想硬匹配怎么办

{
	"query": {
    	"match_phrase": {
        	"content" : {
            	"query" : "我的宝马多少马力"
        	}
    	}
  	}
}

查看IK分词结果

curl -XGET "http://es-cn-v0h0qdjdl000acisw.elasticsearch.aliyuncs.com:9200/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
  "analyzer": "ik_smart", 
  "text": "hello world, 万里长城永不倒,千里黄河水滔滔,君不见黄河之水天上来  "
}'

查看索引account下面type:person 的 mapping

curl -XGET -H "Content-Type: application/json" 'localhost:9200/accout/_mapping/person'

参考

基于企业微信客服与GPT-3构建合规微信AI助手:从原理到部署实践 在人工智能与即时通讯融合的浪潮中,自然语言处理(NLP)与API集成成为构建智能对话系统的核心技术。其原理在于通过API网关接收用户输入,调用云端大语言模型进行处理,再将结果返回给用户,实现自动化交互。这项技术的核心价值在于将前沿AI能力无缝嵌入到日常高频应用场景中,极大地提升了客服自动化、智能问答与个性化服务的效率与体验。企业微信作为官方认可的企服平台,其开放的客服API接口为开发者提供了稳定、合规的消息通道,是连接微信生态与外部AI服务的理想桥梁。本文聚焦于如何利用企业微信客服API与OpenAI的GP 阅读详情

相关推荐

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录(20170803YC) 本次总结主要实现的功能如下:用MEXE02软件在步进电机驱动器中设置好控制动作,每个控制动作有一个特定的编号。之后通过PC和驱动器之间的485通讯,发送相关指令,使步进电机按照一定编号的控制动作运转。 参考资料:东方马达步进电机AZM66AK-HS100+AZD-KD的产品手册,可在官网下载。 A....

dahailuoa6的博客 1万+

ES如何查询索引的全量数据

ES如何通过Scroll API查询索引全量数据

弹指天下 5万+

三维荧光光谱(EEM)散射干扰实战:从识别到精准切除的完整流程

本文详细解析三维荧光光谱(EEM)中散射干扰的识别与精准切除流程,涵盖瑞利散射和拉曼散射的实战处理技巧。通过drEEM工具箱的应用示例和高级场景解决方案,帮助研究者有效消除散射干扰,提升数据准确性,特别适用于环境样品和生物活体样本分析。

weixin_42554042的博客 327

Elasticsearch获取ES查询的所有结果,并批量导出Excel

工作环境是内网所以不能截图。搭建了ELK环境。 3500W个dic中查询数据,并要求导出excel。从es中查询 status=500,返回为空,查询时间超过2000ms的数据 head插件查询出索引的数据 sql更方便查询支持标准sql select param from logstash-sql—3p where numfounds=0 一、kibana画图 1.首先是用kibana

qq_32674727的博客 2万+

多模态数据集对比:MicroLens、PixelRec和Amazon在电商推荐中的表现差异

本文深入对比了三大主流多模态数据集MicroLens、PixelRec和Amazon在电商推荐中的表现差异。通过实际测试数据,分析了这些数据集在冷启动处理、模态融合、稀疏性挑战等关键场景下的真实表现,为算法工程师和研究员提供实用指南。特别关注多模态数据集的选择对推荐系统效果的影响,帮助开发者优化模型性能。

weixin_28717939的博客 418

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+

ES-命令

es

qq_33868316的博客 238

华为OD机试真题2025双机位A卷 C语言 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 351

获取elasticsearch的元数据

//采集es元数据 /*Connection saveConn =null; CloseableHttpClient httpclient=null; httpclient = HttpClientBuilder.create().build(); String httpUrl ="http://localhost:9...

qq_34412985的博客 1260

国科大作业考试资料《人工智能原理与算法》2024新编-第三次作业整理

1. 你的目标是让机器人走出迷宫。机器人面朝北,开始位置在迷宫中间。你可以让机器人转向面朝东、南、西或北。你可以让机器人向前走一段距离,在撞墙之前它会停步。 (1)将问题形式化。状态空间有多大? (2)在迷宫中游走,在两条路或更多路交叉的路口可以转弯。重新形式化这个问题。现在状态空间有多大? (3)从迷宫的任一点出发,我们可以朝四个方向中的任一方向前进直到可以转弯的地方,而且我们只需要这样做。重新对这个问题进行形式化。我们需要记录机器人的方向吗? 2. 传教士和野人问题

MatsumotoChrikk 984

【020】C++ 动态内存管理解析:new 和 delete 的正确使用

C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。

Lion_Long的博客 1470

Bboss Elasticsearch 简单用法(ES 7.*)

一、官方文档 https://esdoc.bbossgroups.com/#/README 二、官方demo https://github.com/bbossgroups/elasticsearch-example.git 三、maven构建 <dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-elasti

阿光的博客 2875

《UDS协议从入门到精通》系列——图解0x83:访问时间参数

详细介绍UDS协议0x83服务,目标ECU的时序参数设置有哪些注意点?

车载系统攻城狮 2138

ElasticSearch重要概念及简单用法

接着上一篇ElasticSearch搭建的环境继续学习,从概念开始,本篇文章将介绍ElasticSearch中的一些重要概念及部分原理性概念,以下内容中简称为ES。 一、ES部分名词解释 1.NRT:英文全称为Near RrealTime。中文意思为近实时,从写入数据到可以被搜索到之间有一个小于1s的延迟,使用ES进行搜索和数据分析可以达...

weixin_33716154的博客 251

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ES6的简单用法 规范

写在前 因为在使用vue的时候会涉及到ES6的相关语法,所有在这里简单的介绍下ES6的相关知识!

不是程序员的程序员博客 1588

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ES6简单用法取代ES5,简洁代码

ES6简单用法取代ES5,简介代码一、关于取值1.直接取值2.修改key值取值3.ES6的解构赋值虽然好用。但是要注意解构的对象不能为undefined、null。否则会报错,故要给被解构的对象一个默认值。二、关于合并数据三、if中判断条件1.判断简化2.条件简化四、关于数组遍历取值1.改进 取指定值2.改进 取指范围值五、关于扁平化数组六、关于获取对象属性值七、关于输入框非空的判断八、关于异步函数 一、关于取值 const obj = { a:1, b:2, c:3, d:

weixin_43365995的博客 755

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

es6中class一些简单用法

ES6 的class可以看作只是一个ES5生成实例对象的构造函数的语法糖。它参考了java语言,定义了一个类的概念,让对象原型写法更加清晰,对象实例化更像是一种面向对象编程。Class类可以通过extends实现继承。它和ES5构造函数的不同点 类的内部定义的所有方法,都是不可枚举的 ///ES5 function ES5Fun (x, y) { this.x = x; this.y = y; } ES5Fun.prototype.toString = function () { return .

写点什么好 654

ES6 promise用法以及简单实例

Promise 定义: Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。它最早由社区提出并实现,ES6将其写进了语言标准,统一了用法,并原生提供了Promise对象。 Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息(结果:异步程序是否执行完毕)。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。 语法 new Prom

ZhaoYulin6的博客 551

elasticsearch中aggregation的简单用法

首先创建实例,以汽车经销商为例(数据主要包含:品牌、制造商、售价、销售时间等)POST /cars/transactions/_bulk { "index": {}} { "price" : 10000, "color" : "red", "make" : "honda", "sold" : "2014-10-28" } { "index": {}} { "price" : 20000, "colo

格物致知 1万+

Elasticsearch相关概念和简单用法

【Cluster】 集群,一个ES集群由一个或多个节点(Node)组成,每个集群都有一个cluster name作为标识。 【node】 节点,一个ES实例就是一个node,一个机器可以有多个实例,所以并不能说一台机器就是一个node,大多数情况下每个node运行在一个独立的环境或虚拟机上。 【index】 索引,即一系列documents的集合。 【shard】 1. 分片,ES是分布式搜索引擎,每个索引有一个或多个分片,索引的数据被分配到各个分片上,相当于一桶水用了...

zqh123zqh的专栏 257

Springboot3整合Elasticsearch8(elasticsearch-java)

本文介绍了Elasticsearch Java客户端的选择与使用。推荐使用Elasticsearch Java API Client(7.15+版本)或Spring Data Elasticsearch(SpringBoot 3+),而RestHighLevelClient已废弃。详细讲解了SpringBoot3整合Spring Data Elasticsearch的步骤,包括配置、实体类注解、CRUD操作等核心功能。重点解析了通过继承ElasticsearchRepository实现的分页查询、条件过滤等

TinpeaV的博客 4769

ES6  中promise 的简单用法

ES6  中promise 的简单用法 promise 不是异步的,要做的事情是异步的; resolve   成功回调 reject      失败回调 通过  .then的方法实现异步 &lt;script type="text/javascript"&gt;     let p1 = new Promise(function(resolve,reject){         if...

Nickname2020的博客 311

ElasticSearch中head插件的简单用法

1.首先在左侧打开Query栏。 2.Query下方的第一栏是分别输入es的地址、端口号、index、type。 3.Query下方的第二栏是输入将要执行的方式,旁边的下拉框是辅助选择执行的类型,如图所示是进行一系列的查找。 4.下面的大框是用来写dsl查询语句。 5.写好dsl查询语句之后,可以利用Validate JSON的Pretty功能验证是否满足json格式 6.点击Reque...

weixin_30840253的博客 89

ElasticSearch之基本用法API

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 索引的创建 ElasticSearch的RESTFul API基本格式: http://&lt;ip&gt;:&lt;port&gt;/&lt;索引&gt;/&lt;类型&gt;/&lt;文档id&gt; 常用HTTP动词:GET / POST / PUT / DELETE 非结构化的创建索引: 创建索引完成后,可以在概览页面中查看到分片的信息,细框的分片

程序员蒋老湿的博客 396
上一篇: 视频格式 & ffmpeg简单用法
下一篇: ubuntu更换阿里软件源
GodsLeft
博客等级 码龄13年 53粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值