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. 一、.net Core bundleconfig.json

    一.bundleconfig.json [ { "outputFileName": "wwwroot/css/site.min.css", "inpu ...

  2. aidl 详解

    aidl 是 android interface define language 的缩写,主要是作为进程间通讯的一个接口规范,这种通讯是一种普通的 client-server 的模式,对于 clien ...

  3. 【学习】021 Nginx

    nginx入门 什么是nginx? nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试ngi ...

  4. IDEA开发初始化设置

    一.基本设置 1. 自动生成 serialVersionUID 的设置 2. 设置文件注释 3. 隐藏项目文件(夹) .git;.gitignore;.idea;.idea/.;.mvn;mvnw;m ...

  5. heroinfo_set.all 函数

    如果是 一对多 关系 即使用 heroinfo_set.all  此时关联字段类型通用,即上边的字段通用,但是需要添加many=True的参数heroinfo_set = serializers.Pr ...

  6. hihocode 1584 : Bounce (找规律)(2017 北京网络赛G)

    题目链接 比赛时随便找了个规律,然后队友过了.不过那个规律具体细节还挺烦的.刚刚偶然看到Q巨在群里提到的他的一个思路,妙啊,很好理解,而且公式写起来也容易.OrzQ巨 #include<bits ...

  7. 封装插件并发布到npm的历程

    1.封装插件 2.使用webpack打包的时候发生了很多问题 3.过程很反复 4.但最终还是发布成功了

  8. LeetCode--015--三数之和(python)

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 先对nums进行排序,再用双指针,L ...

  9. LeetCode 1143 最长公共子序列

    链接:https://leetcode-cn.com/problems/longest-common-subsequence 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序 ...

  10. CodeForces 1187D Subarray Sorting

    Problem You are given an array \(a_1\),\(a_2\),-,\(a_n\) and an array \(b_1\),\(b_2\),-,\(b_n\). For ...