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 ...
随机推荐
- linux用户管理(useradd、userdel、usermod、groupadd、groupdel、chage、passwd、chpasswd)
一.用户账户配置文件介绍 /etc/passwd 用户账户信息文件/etc/shadow 用户账户密码文件/etc/group 用户组信息文件/etc/gshadow 用户组密码所在文件(基本废弃)/ ...
- Win10遇到蓝屏错误CRITICAL_STRUCTURE_CORRUPTION如何解决
很多使用win10系统的用户,都曾经遇到过蓝屏故障.比如,最近有位win10用户在使用电脑时,就发现电脑突然出现了蓝屏,且提示错误CRITICAL_STRUCTURE_CORRUPTION,这是怎么回 ...
- Node.js企业开发:应用场景
要想用Node.js首先需要知道它到底是什么, 有哪些优缺点. 然后我们才能知道到底 Node.js 适合哪些应用场景. Node.js 维基百科:“Node.js 是谷歌 V8 引擎.libuv平台 ...
- git 的add .
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件. git add -u :他仅监控 ...
- 尝试用了一哈wepy框架的感想
恶心死我, 1 在项目里出现了中文乱码(utf-8在wpy文件里有中文和注释--编译后就转化成乱码, 把代码拷在另外的项目里,(该项目没有中文乱码现象,)编译出来就出现中文乱码, 然后我再在所拷的代码 ...
- Linux的学习:
查看端口: netstat -anop | grep 80 netstat -ntlp 先看看不带n的 再看看带n的 我们发现在local address 即主机地址这一栏中,如果没有带n选项,会将套 ...
- Ubuntu 16.04下使用docker部署MySQL主从复制
(以下docker相关的命令,需要在root用户环境下或通过sudo提升权限来进行操作.) 首先更新 软件源 https://mirrors.tuna.tsinghua.edu.cn/help/ubu ...
- 【bzoj1588】[HNOI2002]营业额统计
题目描述: 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额. ...
- 【Java】SpringBoot整合RabbitMQ
介绍 RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,AMQP,即A ...
- Leetcode 9. Palindrome Number(水)
9. Palindrome Number Easy Determine whether an integer is a palindrome. An integer is a palindrome w ...