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.排序操作指令 一.项 ...
随机推荐
- Head First Python之2函数模块
模块就是一个包含Python代码的文本文件,以.py结尾. 第三方模块都在PyPI(python package index)上,可使用PyPI发布你的模块,供他人使用. 注释代码 # coding= ...
- mybatis使用count返回int的方法
<select id="countByExample" resultType="java.lang.Integer" > select count( ...
- 关于hibernate的查询
为什么建议hibernate查询全部字段 一般而言,要查询什么字段就查询什么字段,不要select * from表,但是在hibernate,我们其实可以不遵循这个规则,建议我们把所有属性都查询出来( ...
- ASP.NET jquery-1.9.1 语句
<script src="Script/jquery-1.9.1.js"></script> <script language="javas ...
- SQL 全角半角转换-(摘抄)
/****** SQL转换全角/半角函数 开始******/ CREATE FUNCTION ConvertWordAngle ( @str NVARCHAR(4000), --要转换的字符串 @fl ...
- 和Webbrowser进行简单交互
作为第一篇,简单的控件使用就不说了. 直接从简单的交互开始吧! C#使用网页中已有的js函数 webBrowser.Document.InvokeScript("Stop");// ...
- Struts2学习第一天--Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写
action的name要与访问路径对应.hello.action. 加到tomcat启动 访问:http://localhost:8080/struts2-1/demo1/demo1.jsp 改为su ...
- WebStorm安装与快捷键
WebStorm是JetBrains 推出的一款强大的HTML5编辑工具(特别开发JavaScript非常好用),被JavaScript开发者誉为“web前端开发神奇”.“最强悍的JavaScript ...
- python测试笔试题1
哪一个方法用来返回变量类型? 答案 type 哪一个方法用来列出一个类下的所有属性,方法,以及变量? 答案 dir 字符串方法format是用来去掉字符串的左右空格的么? 答案 不是 python 的 ...
- ajax标准格式
jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. $.ajax({ url:"http://www.test.co ...