elastic 常用查询操作
_
GET http://127.0.0.1:9200/_cat/health?v 健康状况
GET http://127.0.0.1:9200/_cat/indices?v 查看索引
PUT http://127.0.0.1:9200/test_index 创建test_index索引
DELETE http://127.0.0.1:9200/test_index 删除索引
PUT http://127.0.0.1:9200/index/type/id 新增文档
{
"name":"牙膏",
"price":18
}
POST http://127.0.0.1:9200/index/type 自动生成ID
{
"name":"牙膏",
"price":18
}
GET http://127.0.0.1:9200/index/type/id 查询文档
GET http://127.0.0.1:9200/index/type/id?_source=name, price 查询文档只展示name和价格
PUT http://127.0.0.1:9200/index/type/id 替换文档,带上所有的field
{
"name":"牙膏",
"price”:20
}
PUT http://127.0.0.1:9200/index/type/id?version=1 替换文档,只有版本号等于1才更新
{
"name":"牙膏",
"price”:20
}
PUT http://127.0.0.1:9200/index/type/id?version=1&version_type=extertnal 替换文档,只有版本号大于1才更新
{
"name":"牙膏",
"price”:20
}
POST http://127.0.0.1:9200/index/type/id/_update 修改文档
{
"doc":{
"goodsName": "神红瓶skii护肤肤色B"
}
}
DELETE http://127.0.0.1:9200/index/type/id?pretty 修改文档
GET http://127.0.0.1:9200/index/type/_search 查询所有
{
"took": 2, —耗费的时间毫秒
"timed_out": false, 是否超市
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 60, —总数
"max_score": 1, —相关度匹配分数
"hits": [
{
"_index": "ota_inn",
"_type": "inn",
"_id": "1011_ota",
"_score": 1,
"_source": {
"id": "1011_ota",
"region": "秦皇岛市",
"image": "https://img.jiesuyx.com/test/1539938469365.jpg",
"innName": "超假民宿3",
"tags": [
],
"createTime": 1539938472000,
"searchValue": 1,
"price": null,
"marketPrice": null
}
}
}
}
}
]
}
}
GET 127.0.0.1:9200/ota_inn/inn/_search?q=innName:民宿&sort=createTime:desc 查询名字带有民宿并按时间排序
query dsl
GET 127.0.0.1:9200/ota_inn/inn/_search 查询所有
{
"query":{
"match_all":{}
}
}
GET 127.0.0.1:9200/ota_inn/inn/_search 查询名字带有民宿并按时间排序
{
"query": {
"match": {
"innName": "民宿"
}
},
"sort": [
{
"createTime": "desc"
}
]
}
GET 127.0.0.1:9200/ota_inn/inn/_search 分页查找
{
"query": {
"match_all": {
}
},
"from": 1,
"size": 100
}
GET 127.0.0.1:9200/ota_inn/inn/_search 只展示region和innName
{
"query": {
"match_all": {
}
},
"_source": [
"region",
"innName"
]
}
query filter
GET 127.0.0.1:9200/ota_inn/inn/_search 查询名字带有你好民宿并价格大于0
{
"query":{
"bool":{
"must":{
"match":{
"innName":"你好民宿"
}
},
"filter":{
"range":{
"price":{"gt":0}
}
}
}
}
}
GET 127.0.0.1:9200/ota_inn/inn/_search 完全匹配
{
"query":{
"match_phrase":{
"innName":"超假民宿"
}
}
}
GET 127.0.0.1:9200/ota_inn/inn/_search 高亮显示
{
"query":{
"match_phrase":{
"innName":"超假民宿"
}
},"highlight":{
"fields":{
"innName":{}
}
}
}
Fielddata is disabled on text fields by default 解决办法
PUT 127.0.0.1:9200/ota_goods/_mapping/goods
{
"properties":{
"tags":{
"type":"text",
"fielddata":"true"
}
}
}
GET 127.0.0.1:9200/ota_goods/goods/_search 统计标签下的分类
{
"size":0, —不展现现在数据
"aggs":{
"group_by_tags":{
"terms":{
"field":"tags"
}
}
}
}
GET 127.0.0.1:9200/ota_goods/goods/_search 名字含有蜂蜜下统计标签下的分类
{
"query":{
"match":{
"goodName":"蜂蜜"
}
},
"aggs":{
"group_by_tag":{
"terms":{
"field":"tags"
}
}
},
"size":0
}
GET 127.0.0.1:9200/ota_goods/goods/_search 先分组再算平均价
{
"aggs":{
"group_by_tags":{
"terms":{
"field":"tags"
},
"aggs":{
"avg_price":{
"avg":{
"field":"price"
}
}
}
}
},
"size":0
}
GET 127.0.0.1:9200/ota_goods/goods/_search 先分组再算平均价然后按照平均价排序
{
"aggs":{
"group_by_tags":{
"terms":{
"field":"tags",
"order":{"avg_price":"desc"}
},
"aggs":{
"avg_price":{
"avg":{
"field":"price"
}
}
}
}
}
}
GET 127.0.0.1:9200/ota_goods/goods/_search 按照指定的价格区间进行分组,然后在每组内再按照tag进行分组,计算每组的平均价格
{ "size":0,
"aggs":{
"group_by_price":{
"range":{
"field":"price",
"ranges":[
{
"from":0,
"to":20
},{
"from":20,
"to":4000
}
]
},"aggs":{
"group_by_tags":{
"terms":{
"field":"tags"
},"aggs":{
"avg_price":{
"avg":{
"field":"price"
}
}
}
}
}
}
}
}
基于groovy脚本
内置脚本
POST 127.0.0.1:9200/ota_goods/goods/47/_update 价格加1
{
"script":"ctx._source.price+=1"
}
外部脚本
安装目录/config/scripts
存放脚本 test_add_tags.groovy
脚本内容:ctx._source.tags+=new_tags
POST 127.0.0.1:9200/ota_goods/goods/47/_update 标签增加ha ha
{
"script":{
"lang":"groovy", —语言
"file":"test_add_tags", — 脚本名
"params":{
"new_tag":"ha ha" —参数名:参数值
}
}
}
删除脚本
ctx.op = ctx.source.num == count ? ‘delete’:’none’
POST 127.0.0.1:9200/ota_goods/goods/47/_update num为1的删除否则不操作
{
"script":{
"lang":"groovy",
"file":"test_delete_price",
"params":{
"count":1
}
}
}
POST 127.0.0.1:9200/ota_goods/goods/47/_update 有则更新,没则插入
{
"script":"ctx._source.price+=1",
"upsert":{
"num":0,
"tags":[]
}
}
47.105.105.2:9200/_mget 批量查询
{
"docs":[
{
"_index":"ota_goods",
"_type":"goods",
"_id":"47"
},
{
"_index":"ota_goods",
"_type":"goods",
"_id":"37"
}
]
}
47.105.105.2:9200/ota_goods/_mget 批量查询 index相同
{
"docs":[
{
"_type":"goods",
"_id":"47"
},
{
"_type":"goods",
"_id":"36"
}
]
}
47.105.105.2:9200/ota_goods/goods/_mget 批量查询 index和type都一样
{
"ids":["47","36"]
}
POST 47.105.105.2:9200/_bulk 批量操作,每个操作一行,不能换行 中间步骤有错继续执行下一条
{"delete":{ "_index":"ota_goods","_type":"goods","_id":"47_update"}} 删除
{"create":{"_index":"ota_goods","_type":"goods","_id”:”2”}} 增加文档,设置价格
{"price":199}
{"index":{"_index":"ota_goods","_type":"goods","_id":2}} 替换或创建
{"price":299}
{"update":{"_index":"ota_goods","_type":"goods","_id":2}} 更新操作
{"doc":{"price":399}}
GET 47.105.105.2:9200/ota_goods/_mapping/goods 查看mapping
测试mapping
GET 47.105.105.2:9200/ota_goods/_analyze
Term 不分词 必须包含test hello
Term 不分词 必须包含search full_text nodal
仅filter
快速定位不合法
GET 47.105.105.2:9200/ota_goods/goods/_search?scroll=1m scroll 分页查询
{
"query":{
"match_all":{}
},
"sort":["_doc"],
"size":3
}
返回结果
{
"_scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAdPFnJzUEFqTFdzU2hTYTZDN3hTbWd2ZmcAAAAAAAAHUxZyc1BBakxXc1NoU2E2Qzd4U21ndmZnAAAAAAAAB1EWcnNQQWpMV3NTaFNhNkM3eFNtZ3ZmZwAAAAAAAAdSFnJzUEFqTFdzU2hTYTZDN3hTbWd2ZmcAAAAAAAAHUBZyc1BBakxXc1NoU2E2Qzd4U21ndmZn",
"took": 3,
"timed_out": false,
"_shards": {
"total": 5。。。。
}
下一次查询 自动会记录上次查询的相关信息
47.105.105.2:9200/_search/scroll
{
"scroll":"1m",
"scroll_id":"DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAeuFnJzUEFqTFdzU2hTYTZDN3hTbWd2ZmcAAAAAAAAHsRZyc1BBakxXc1NoU2E2Qzd4U21ndmZnAAAAAAAAB68WcnNQQWpMV3NTaFNhNkM3eFNtZ3ZmZwAAAAAAAAeyFnJzUEFqTFdzU2hTYTZDN3hTbWd2ZmcAAAAAAAAHsBZyc1BBakxXc1NoU2E2Qzd4U21ndmZn"
}
创建索引
PUT 47.105.105.2:9200/my_index
{
"settings":{
"number_of_shards":1,
"number_of_replicas":0
},
"mappings":{
"my_type":{
"properties":{
"my_field":{
"type":"text"
}
}
}
}
}
修改索引
PUT 47.105.105.2:9200/my_index/_settings
{
"number_of_replicas":1
}
PUT 127.0.0.1:9200/my_index/_alias/goods_index 给my_index起别名
搜索发帖日期在一个月之后的
elastic 常用查询操作的更多相关文章
- Django的ORM常用查询操作总结(Django编程-3)
Django的ORM常用查询操作总结(Django编程-3) 示例:一个Student model: class Student(models.Model): name=models.CharFiel ...
- Sqlserver 数据库、表常用查询操作
查询所有表以及记录数: select a.name as 表名,max(b.rows) as 记录条数 from sysobjects a ,sysindexes b where a.id=b.id ...
- Mysql常用表操作 | 单表查询
160905 常用表操作 1. mysql -u root -p 回车 输入密码 2. 显示数据库列表 show databases 3. 进入某数据库 use database data ...
- Django 1.10 中文文档------3.2.2 查询操作making queries
3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...
- .NET LINQ基本查询操作
获取数据源 在 LINQ 查询中,第一步是指定数据源.像在大多数编程语言中一样,在 C# 中,必须先声明变量,才能使用它.在 LINQ 查询中,最先使用 from 子句的目的是引入数据源 ( ...
- Solr常用查询语法笔记
1.常用查询 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符 ...
- 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念
本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...
- 查询操作 -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Jedis对Redis的常用命令操作
本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...
随机推荐
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(3):常用动态代理之JDK动态代理、CGLIB动态代理
一.动态代理的理解 动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问. 先来谈谈什么是代理模式. 假设这样一个场景:你的公司是一家软件 ...
- 【Head First Java 读书笔记】(一)基本概念
Java的工作方式 你要做的事情就是会编写源代码 Java的程序结构 类存于源文件里面 方法存在类中 语句存于方法中 剖析类 当Java虚拟机启动执行时,它会寻找你在命令列中所指定的类,然后它会锁定像 ...
- httpClient-3.1学习笔记
http://hc.apache.org/httpclient-3.x/tutorial.htmlThe general process for using HttpClient consists o ...
- 函数LEN()使用方法
string pro_sql = string.Format("select pr_bianma from tb_products where pr_bianma like '%120201 ...
- git vs sourcetree
SourceTree&Git部分名词解释 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓 ...
- [python]模块及包
一 .module 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc&quo ...
- Android日期时间选择器DatePicker、TimePicker日期时间改变事件响应(Android学习笔记)
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- tcp连接过程中的三次握手和四次挥手
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手握手建立连接 @第一次握手: 建立连接是,客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待B确认. @第二次握手: 服务 ...
- SQL语句优化 -- 以Mysql为例
本文参考下面的文章: 1: [真·干货]MySQL 索引及优化实战 2: Mysql语句的执行过程 3: sql优化的几种方法 我将 sql语句优化分为三个方面,(此处不包括 业务逻辑的 ...
- Jenkins持续集成企业实战系列之Jenkins配置演示-----03
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...