在使用 es 的过程中,总是会用到 es 的查询语句,那么下面主要对 es 日常用到的查询语句 做一个总结展示,记录查询语句方便后续用到时查询。
查询现有索引
查询当前连接的 es 的所有索引
GET /_cat/indices?v
创建索引
简单的创建索引语句如下,当然你也可以在创建索引时指定分片等
PUT /test { "mappings": { "test":{ "properties": { "content":{ "type": "text", "analyzer": "hanlp" } } } } }
查询索引结构
当你需要用到某个索引,但是由于时间久忘记具体索引字段时可以使用如下语句查询索引结构,索引字段
GET /test/_mapping
插入数据
可以通过put 命令为指定索引插入数据,比如
PUT test/test/1 { "content":"初级会计资格证" }
查询索引数据
通过以下命令查询索引数据,暂时没有指定具体的查询条件
GET test/_search
查看索引磁盘占用信息
可以通过命令查询指定索引的磁盘占用信息
GET /_cat/indices/test?v
删除索引
删除索引时需要注意,删除的索引数据不能恢复,谨慎操作
DELETE test
查看分词器分词结果
对于新的分词器,不了解其分词后的具体效果,可以通过命令执行分词器查看其分词结果
POST /_analyze { "analyzer": "hanlp", "text": "查看哦,同时我们也会给您分配专属的学习规划师带" }
指定查询数量
当需要指定每页查询数量时可以通过 size 控制
GET crm_meiqia_conversation/_search { "size":200 }
指定条件查询
执行条件查询分为多种条件,下面来指定一个基本的查询
GET crm_meiqia_conversation/_search { "query": { "bool" : { "must" : [ { "bool" : { "filter" : [ { "range" : { "convStartDate" : { "from" : 1719849600000, "to" : null, "include_lower" : true, "include_upper" : true, "boost" : 1.0 } } }, { "range" : { "convEndDate" : { "from" : null, "to" : 1719935999000, "include_lower" : true, "include_upper" : true, "boost" : 1.0 } } }, { "term" : { "clientInfo.uid" : { "value" : "34546407", "boost" : 1.0 } } }, { "term" : { "agentId" : { "value" : "10002351", "boost" : 1.0 } } }, { "match_phrase_prefix" : { "convContent.content" : { "query" : "请您稍等", "slop" : 0, "max_expansions" : 50, "boost" : 1.0 } } } ], "adjust_pure_negative" : true, "boost" : 1.0 } } ], "adjust_pure_negative" : true, "boost" : 1.0 } } }
数据迁移
当需要更改索引结构时,需要先把原有索引的数据迁移到相同临时索引中,待更改索引结构之后再迁移回来,迁移数据用到
POST _reindex { "source": { "index": "crm_meiqia_conversation", "size":500 }, "dest": { "index": "crm_meiqia_conversation_tmp" } }
或者异步迁移数据
POST _reindex?wait_for_completion=false { "source": { "index": "crm_meiqia_conversation", "size":500 }, "dest": { "index": "crm_meiqia_conversation_tmp" } }
异步迁移数据,数据迁移结果通过命令查看
GET /_tasks/cbwVMU6UTACFPxKW0zkOcw:456723575
统计索引数据量
想要统计索引的全部数据量,可以通过如下命令
GET crm_meiqia_conversation/_count
更新数据
更新指定索引指定对象字段中数据内容
POST test/test/1/_update { "doc":{ "content":"ceshi测试" } }
数据更新成功后查看数据可以看到
到这里关于es 日常用到的相关语句差不多整理完了,有需要的可以查阅哈。