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的更多相关文章

  1. ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程

    1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id  id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...

  2. Elasticsearch 基础入门

    原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...

  3. Elasticsearch基础但非常有用的功能之二:模板

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484584&idx=1&sn=accfb65 ...

  4. 最完整的Elasticsearch 基础教程

    翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT)        Ela ...

  5. ELK 之一:ElasticSearch 基础和集群搭建

    一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...

  6. Elasticsearch基础教程

    Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...

  7. elasticsearch基础概念

    接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒).           集群(clu ...

  8. Elasticsearch基础知识分享

    1. Elasticsearch背景介绍 Elasticsearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elast ...

  9. Elasticsearch基础教程分享

    基础及相关资料 首先我们先了解一下什么是Elastisearch,Elasticsearch(简称es)是一个基于Lucene库的搜索引擎.它提供了一个分布式.支持多租户的全文搜索引擎,具有HTTP  ...

随机推荐

  1. Mongo --01 介绍、安装、优化报警

    目录 一 . NoSQL 介绍 二.MongoDB简介 三.MongoDB特点 四. mongo应用场景 五. 安装配置mongodb 六.优化报警 一 . NoSQL 介绍 NoSQL,指的是非关系 ...

  2. centos 系统查看raid信息

    一.MegaCli命令介绍 MegaCli是一款管理维护硬件RAID软件,可以用来查看raid信息等MegaCli 的Media Error Count: 0 Other Error Count: 0 ...

  3. PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)

    This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...

  4. POJ 3667 Hotel (线段树区间合并)

    题目链接:http://poj.org/problem?id=3667 题目大意:一共有n个房间,初始时都是空的,现在有m个操作,操作有以下两种: 1.1 d :询问是否有连续d个空的房间,若有则输出 ...

  5. Django【第17篇】:Django之信号

    django中的信号 Django中的信号及其用法 Django中提供了"信号调度",用于在框架执行操作时解耦. 一些动作发生的时候,系统会根据信号定义的函数执行相应的操作 Dja ...

  6. 基于VSFTP的本地YUM源及光盘YUM源搭建

    基于VSFTP的本地YUM源及光盘YUM源搭建  一.yum环境的本地源搭建(基于VSFTP):  1)安装vsftp;     *********************************** ...

  7. 【GDOI 2016 Day1】疯狂动物城

    题目 分析 注意注意:码农题一道,打之前做好心理准备. 对于操作1.2,修改或查询x到y的路径,显然树链剖分. 对于操作2,我们将x到y的路径分为x到lca(x,y)和lca(x,y)到y两部分. 对 ...

  8. hihocoder 1582 : Territorial Dispute (计算几何)(2017 北京网络赛E)

    题目链接 题意:给出n个点.用两种颜色来给每个点染色.问能否存在一种染色方式,使不同颜色的点不能被划分到一条直线的两侧. 题解:求个凸包(其实只考虑四个点就行.但因为有板子,所以感觉这样写更休闲一些. ...

  9. LeetCode--139--单词拆分(python)

    给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词.你可以假设字典中没有重复的 ...

  10. LTE抛弃了CDMA?

    原文链接:https://blog.csdn.net/readhere/article/details/82764919 本文节选自<LTE教程:结构与实施> 大家都听说过这样的说法:LT ...