#新建索引以及类型:
PUT http://10.18.43.3:9200/test
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 0
},
"mappings": {
"type1": {
"properties": {
"id": {
"type": "long"
},
"ukey": {
"type": "keyword"
},
"startid": {
"type": "long"
},
"title": {
"type": "text"
},
"fetch_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
keyword类型的字段是不可切分的,text可以分词 #插入数据: PUT http://10.18.43.3:9200/test/type1/1
{
"key": value,
"key2": value2
}
,如果需要自动生成id,需要把方法改成POST,然后把url改成http://10.18.43.3:9200/test/type1 #更新数据
POST http://10.18.43.3:9200/test222/type1/1/_update
{
"doc": {
"content":"更新content2"
} }
更新数据需要用POST方法而且后面要加_update,更新的字段要包含在 doc 字段里面 #删除数据
DELETE http://10.18.43.3:9200/test/type1/1 #删除索引
DELETE http://10.18.43.3:9200/test #简单查询
GET http://10.18.43.3:9200/test/type1/1 #条件查询
POST http://10.18.43.3:9200/test/_search
{
"query": {
"match_all": {}
},
"from": 1,
"size": 2
}
from 是从哪一行开始,size 是查询显示多少条 POST http://10.18.43.3:9200/test/_search
{
"query": {
"match": {
"html_snapshot": "医生"
}
},
"sort": [
{
"id": {
"order": "desc"
}
}
]
}
查询所有html_snapshot包含"医生"的数据,类似于模糊查询(查询html_snapshot包含"医生"的数据),需要注意这个模糊匹配会把查询条件再次分词,如
条件为"html_snapshot": "医生和护士"的话,那么很可能会分成"医生","护士"两个词来分别匹配,如果需要像SQL那样 %xxx%这种形式的模糊匹配的话,
那么需要把 "match"改为"match_phrase",这样如果匹配"医生和护士",那么会匹配里面包含 xxx医生和护士xxxx 这种类型的数据
这儿html_snapshot是text类型,如果是keyword类型的话查询结果是精确查询的结果(查询html_snapshot等于"医生"的数据)
按照id降序排列 POST http://10.18.43.3:9200/test/_search
{
"query": {
"query_string": {
"query": "(非常感谢 AND 医院) OR 医生",
"fields": ["html_snapshot", "content"]
}
}
}
查询多个字段,这样查询也是会先自动分词然后进行匹配 POST http://10.18.43.3:9200/test/_search
{
"query": {
"term": {
"startid": 2
}
}
}
精确查询 startid == 2 POST http://10.18.43.3:9200/test/_search
{
"query": {
"range": {
"startid": {
"gte": 2,
"lte": 3
}
}
}
}
startid 大于等于2,小于等于3的数据 POST http://10.18.43.3:9200/test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"startid": 2
}
},
{
"match": {
"html_snapshot": "客气"
}
}
]
}
}
}
查询 startid必须为2(因为是keyword类型) 和 html_snapshot必须包含(text类型)"客气" 的所有数据 #聚合查询
POST http://10.18.43.3:9200/test/_search
{
"aggs": {
"group_by_startid": {
"terms": {
"field": "startid",
"size": 3
}
}
}
}
根据startid统计所有数据count,返回统计结果前3的聚合数据,size是显示3条聚合数据
可以同时统计多组聚合信息 POST http://10.18.43.3:9200/test/_search
{
"aggs": {
"group_by_startid": {
"stats": {
"field": "startid"
}
}
}
}
stats是计算聚合关键字,里面有startid的总数,最大值最小值平均值总和等数据

##Elasticsearch 使用bool 子句来将各种子查询关联起来,组成布尔表达式,bool 子句可以随意组合、嵌套。

bool子句主要包括:

must:表示必须匹配。
must_not:表示一定不能匹配。
should:表示可以匹配,类似于布尔运算里的”或”。如果bool 子句里,没有must子句,那么,should子句里至少匹配一个,如果有must子句,那么,should子句至少匹配零个。可以使用minimum_should_match 来对最小匹配数进行设置。

====================================ES的快照备份查询与恢复===========================================

索引的快照过程是增量的。在创建索引快照的过程中,ElasticSearch会分析仓库中已经存在的索引文件,只拷贝那些在最后一次快照之后被创建或者更新的文件。That allows multiple snapshots to be preserved in the repository in a compact form. 快照过程以非阻塞的方式执行,所有的索引和搜索操作都可以对正在被创建快照的索引继续执行。一个快照表示的是这个索引在快照被创建时间点的索引视图,所以在索引过程开始之后被添加到索引中的记录不会出现在快照中。
(参考 https://blog.csdn.net/ale2012/article/details/82702128#_126)

需要先在elasticsearch.yml中加入  path.repo: /usr/local/backups 这个配置来配置备份文件夹 文件夹权限要设置为777

1. 创建快照仓库, 名字为all_backup
http://10.1.1.112:9200/_snapshot/all_backup PUT
{
"type": "fs",
"settings": {
"location": "/usr/local/backups/all_backup"
}
} 2. 备份快照,快照名字v2019-7-2
http://10.1.1.112:9200/_snapshot/all_backup/v2019-7-2?wait_for_completion=true PUT 如果只需要备份某几个索引可以加上:

{
"indices": "article"
}


3. 查询快照
http://10.1.1.112:9200/_snapshot/all_backup/* GET 4. 恢复快照
http://10.1.1.112:9200/_snapshot/all_backup/v2019-7-2/_restore POST

ElasticSearch : 基础的更多相关文章

  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 基础 1

    ElasticSearch 基础=============================== 索引创建 ========================== 1. RESTFUL APIAPI 基本 ...

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

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

  5. 最完整的Elasticsearch 基础教程

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

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

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

  7. Elasticsearch基础教程

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

  8. elasticsearch基础概念

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

  9. Elasticsearch基础知识分享

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

  10. Elasticsearch基础教程分享

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

随机推荐

  1. 统计学中的P值与显著性的意义

    统计学意义(p值) 结果的统计学意义是结果真实程度(能够代表总体)的一种估计方法.专业上,p值为结果可信程度的一个递减指标,p值越大,我们越不能认为样本中变量的关联是总体中各变量关联的可靠指标.p值是 ...

  2. Android 软键盘弹出,界面整体上移

    在做搜索功能的时候,点击搜索框,搜索框获取焦点,键盘弹出:现在问题出来了,android软键盘弹出的时候,android整个界面上移,布局被挤压,很难看:要解决这个问题,我们需要用到 windowSo ...

  3. python里面的encode和decode函数

    转自 http://www.cnblogs.com/evening/archive/2012/04/19/2457440.html 总结一句话 encode:    字符串打算输出(给别人用)比如pr ...

  4. qt中的lineEdit文本输入框的输入类型限制(三种验证类)

    qt的三种验证类: 1.输入int类型 QValidator *validator=new QIntValidator(100,999,this): QLineEdit *edit=new QLine ...

  5. EL表达式的内置对象

    在EL表达式中,无需创建就可以使用的对象称之为EL隐藏(隐含.内置)对象.在EL中一共有11个隐藏对象,它们都与Map相似.其中10是Map,一个是 PageContext. 参数隐藏对象 这些隐藏对 ...

  6. 网络基础-IP、端口等

    首先来理解一下几个概念.      白帽子:有能力破坏电脑安全但不具恶意目的的黑客.白帽子一般有清楚的定义.道德规范并常常试图同企业合作去改善发现的安全弱点.         正义技术员. 灰帽子:对 ...

  7. 简单的PHP算法题

    简单的PHP算法题 目录 1.只根据n值打印n个0 2.根据n值打印一行 0101010101010101010101…… 3.根据n值实现1 00 111 0000 11111…… 4.根据n值实现 ...

  8. IOS 应用管理(九宫格) 总结笔记

    1. 开发前的思路 ========================================1> 从mainBundle中加载Plist2> 按照plist中的数据数量先确定各个a ...

  9. python:协程

    1,如何实现在两个函数之间的切换? def func1(): print(l) yield print(3) yield def func2(): g =func1() next(g) print(2 ...

  10. 【洛谷2624】[HNOI2008] 明明的烦恼(Python+利用prufer序列结论求解)

    点此看题面 大致题意: 给你某些点的度数,其余点度数任意,让你求有多少种符合条件的无根树. \(prufer\)序列 一道弱化版的题目:[洛谷2290][HNOI2004] 树的计数. 这同样也是一道 ...