ElasticSearch 基础 1
ElasticSearch 基础
=============================== 索引创建 ========================== 1. RESTFUL API
API 基本格式: http://<ip>:<port>/<索引>/<类型>/<文档id>
常用的HTTP动词: GET/PUT/POST/DELETE 2. PUT 127.0.0.1:9200/people
json结构:
{
"settings":{
"numbers_of_shard": 3,
"numbers_of_replicas":1
},
"mappings":{
"man":{
"properties":{
"name": {
"type": "text"
},
"country":{
"type": "keyword"
},
"age":{
"type": "integer"
},
"date": {
"type":"date",
"formate": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
},
"woman":{
}
}
}
settings: 指定索引配置
number_of_shard: 指定索引的分片数
number_ofreplicas: 指定索引的备份数
mappings: 索引的映射
man: 类型
properties: 属性的定义
国家不可切分 它是关键词
epoch_millis: 时间戳的格式 ================================= 插入 ===============================
1. 指定文档id插入
2. 自动生成文档id插入 3. 指定文档id插入: PUT http://127.0.0.1:9200/people/man/1
JSON结构:
{
"name": "张波",
"country": "China",
"age": 26,
"date": "1992-04-23"
} 4. 自动生成文档id插入: POST http://127.0.0.1:9200/people/man/
JSON结构:
{
"name": "美男张波",
"country": "China",
"age": 20,
"date": "1998-04-23"
}
=========================== 更新 ==============================
1. POST http://127.0.0.1:9200/people/man/1/_update
{
"doc":{
"name": "谁是张波"
}
}
修改了id为1 的文档数据的属性name 修改成功了
2. 脚本修改
(1)
{
"script":{
"lang": "painless",
"inline":"ctx._source.age += 10"
}
}
(2)
{
"script":{
"lang": "painless",
"inline":"ctx._source.age = params.age"
"params": {
"age": 100
}
}
}
script: 指定脚本修改
lang: 指定脚本语言 ,painless指定脚本语言(es内置脚本语言 ) 也支持js, python等
inline: 指定脚本内容
ctx: 代表es上下文
_source: 代表es文档
执行的结果是age年龄增加了10
params: 参数修改 ================================= 删除 ================================ 1. 删除文档 DELETE http://127.0.0.1:9200/people/man/1
2. 删除索引 DELETE http://127.0.0.1:9200/people 注意: 删除操作需要谨慎 ================================= 查询 ================================= ======== 简单查询 =========
POST http://127.0.0.1:9200/book/_search
{
"query":{
"match_all":{
}
},
"from": 1,
"size": 1
}
match_all: 查询所有数据
返回结果:
took: 花费时间 ms
hits:响应的全部结果
total: 数据条数,
默认返回10条数据
from: 指定从哪里返回
size: 返回的数据条数 ========= 条件查询 ========
{
"query":{
"match":{
"title": "ElasticSearch"
}
},
"sort":{
"publish_time": {"order": "desc"}
}
}
match: 关键词查询,返回title包含ElasticSearch的文档
publish_time: 降序排序 ======== 聚合查询 ==========
{
"aggs": {
"group_by_word_count": {
"terms": {
"field": "word_count"
}
},
"group_by_publish_time": {
"terms": {
"field":"publish_time"
}
}
}
}
aggs: 聚合查询关键词
group_by_word_count: 自定义(聚合条件的名字)
terms: 关键词
field: 指定聚合字段
返回的聚合信息
{
"key": 1000,
"doc_count": 5
}
{
"aggs": {
"grades_word_count": {
"stats": {
"field": "word_count"
}
}
}
}
grades_word_count:自定义
stats: 进行统计计算
返回最小,最大,文档总数,平均,总量
{
"aggs": {
"grades_word_count": {
"min": {
"field": "word_count"
}
}
}
}
min: 直接指定最小值也是可以的
ElasticSearch 基础 1的更多相关文章
- ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程
1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...
- Elasticsearch 基础入门
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...
- Elasticsearch基础但非常有用的功能之二:模板
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484584&idx=1&sn=accfb65 ...
- 最完整的Elasticsearch 基础教程
翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Ela ...
- ELK 之一:ElasticSearch 基础和集群搭建
一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...
- Elasticsearch基础教程
Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...
- elasticsearch基础概念
接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒). 集群(clu ...
- Elasticsearch基础知识分享
1. Elasticsearch背景介绍 Elasticsearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elast ...
- Elasticsearch基础教程分享
基础及相关资料 首先我们先了解一下什么是Elastisearch,Elasticsearch(简称es)是一个基于Lucene库的搜索引擎.它提供了一个分布式.支持多租户的全文搜索引擎,具有HTTP ...
随机推荐
- PAT Basic 1032 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即参赛人数.随后 N 行, ...
- [apache spark]洞见纽约车辆事故|bluemix|apache spark
今天,我们用spark 来分析 下一纽约市车辆事故的大数据. 前提条件: 1.有bluemix 帐号,并并在bluemix的dashboard里创建了一个sparck instance. 2.稳定可以 ...
- 前端每日实战:12# 视频演示如何用纯 CSS 创作一种文字断开的交互特效
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/LmjNgL 可交互视频教程 此视频是可以交 ...
- 1.使用kubeadm安装kubernetes
一.环境准备 所有规划主机(一台master,两台node)均需操作 1.关闭防火墙,selinux [root@node1 ~]# systemctl stop firewalld [root@no ...
- Arduino-舵机
舵机一般都外接三根线,一般棕色为接地线(GND),红色为电源正极线(VCC),橙色为信号线(PWM). 用Arduino控制舵机的方法有两种: 一种是通过Arduino的普通数字传感器接口产生占空比不 ...
- 多重背包的二进制优化——DP
#include<cstdio> #include<cstring> #include<algorithm> #define LL long long using ...
- noi 1700 + 1756 八皇后问题 x
1700:八皇后问题 总时间限制: 10000ms 内存限制: 65536kB 描述 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方. 输入 无输入. 输出 按给定顺序和格式输出 ...
- 【PowerOJ1754&网络流24题】负载平衡问题(费用流)
题意: 思路: [问题分析] 转化为供求平衡问题,用最小费用最大流解决. [建模方法] 首先求出所有仓库存货量平均值,设第i个仓库的盈余量为A[i],A[i] = 第i个仓库原有存货量 - 平均存货量 ...
- RabbitMQ消息如何100%投递成功(六)
消息如何保障100%的投递成功? 什么是生产端的可靠性投递? 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker)确认应答 完善的消息进行补偿机制(如网络问题没有返回确认应答 ...
- IDEA集成java编程规范插件
第一种:如图所示搜索 Alibaba Java Coding Guidelines(阿里巴巴) 安装完成后,重启idea,点击tools>阿里巴巴编程>编程规约扫描 即可