elastic使用lucene建立索引的步骤中,需要文件系统缓存需要同步到磁盘上。(多个segment->commit文件来维护)

当建立历史数据时,并不要求太高的实时性时,可以减小(默认1s)自动刷新时间。

curl -XPOST http://127.0.0.1:9300/logstash-2016.12.19/_settings -d '{"refresh_interval":"10s"}'

如需关闭

curl -XPOST http://127.0.0.1:9300/logstash-2016.12.19/_settings -d '{"refresh_interval":"-1"}'

translog保证索引的一致性。elastic中的update,insert等写操作完成,一定会触发translog到磁盘上,然后再返回200。这个过程会损失一点性能。

如果不考虑这些,希望性能优先,可以在index template中设置 index.translog.durability:async

lucene的思路就是开新文件。默认1s就有一个文件产生。ES会不断在后台merge segment。

并不是所有大小的segment都会被merge,考虑性能的问题,大于5G的segment不会被merge。一般采用的策略是负载较低的时候通过forcemerge接口归并。

curl -XPOST http://127.0.0.1:9300/logstash-2016.12.19/_forcemerge?max_num_segments=1

_forcemerge对资源消耗比一般的多。

route和replica的过程:

每条数据都有一个routing值,默认是_id。

shard = hash(routing)% number_of_primary_shards

这个运算决定了数据被分配到的分片。一般分片数不能随意改,不然会导致路由不对。

5节点集群。副本1个,索引主分片10。每个节点分配4个分片。但配置的时候要多一点,因为机器可能出故障。

elasticsearch crud:

create: curl -XPOST http://127.0.0.1:9200/logstash-2015.06.10/testlog -d '{name:"test", age:11}' 返回值会带_id假设为_id1

read: curl -XGET http://127.0.0.1:9200/logstash-2015.06.10/testlog/_id1

delete: curl -XDELETE http://127.0.0.1:9200/logstash-2015.06.10/testlog/_id1 支持通配符

update: curl -XPOST http://127.0.0.1:9200/logstash-2015.06.10/testlog/_id1 -d  '{name:"test", age:11}'

或者 curl -XPOST http://127.0.0.1:9200/logstash-2015.06.10/testlog/_id1/_update -d  '{doc: { "name": "test1"} }'

或者 curl -XPOST http://127.0.0.1:9200/logstash-2015.06.10/testlog/_id1/_update -d  '{script: "ctx._source.name = \"test1\"" }'

search:

curl -XGET http://127.0.0.1:9200/logstash-2015.06.10/testlog/_search?q=name:"test"

NOT AND OR组合搜索 必须大写

比如user:("test1" OR "test2") AND NOT mesg:first;

_exits_要求存在 _missing_:user 要求不存在

聚合:1.0之前叫做facet,1.0之后叫做aggregation

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. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

  2. javaweb之框架标签(day1 框架标签的使用)

    框架标签 <frameset> --rows:按照行进行划分<frameset rows='80,*'> --rows:按照列进行划分<frameset cols='80 ...

  3. CSS重新认识(一)

    1. 所有的元素都遵循盒子模型,即内容部分+padding(填充部分)+border+margin(外边距部分); 2.我们平常定义的width与height指的内容部分的长宽; 3. 行内元素在不改 ...

  4. unity3d插件Daikon Forge GUI 中文教程3-基础控件Button和Sprite的使用

    2.2添加一个按钮Button 来看看特有的属性:Button Properties Data 显示的文本 Behavior 中的几个: Aoto Size 选中时就是按钮的背景会根据Data中的文本 ...

  5. webform连接ACCESS数据库

    1.先建立一个名叫mydb.accdb的access数据库 2.他它复制到webform中,放在App_Data文件夹下. 3.在App_Code文件夹下建好封装语句,查询方法,连接语句,其中stud ...

  6. oracle 字符乱码问题解决方案

    今天在客户服务器上遇到了oracle中文乱码问题,第一个想到的是:要想避免oracle字符乱码的问题,需要注意oracle客户端的字符编码和服务端的字符编码保持一致. 于是操作如下: 1.查看服务端字 ...

  7. 管闲事的小明-nyoj51

    描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵 ...

  8. CVTRES : fatal error CVT1100 , fatal error LNK1123:

    CVTRES : fatal error CVT1100: duplicate resource. type:DIALOG, name:901, language:0x0804LINK : fatal ...

  9. windows 7 安装 telnet

    telnet 192.168.1.10 8080

  10. IOS第八天(4:UITableViewController新浪微博, 代码创建布局和数据转模型)

    ******控制control #import "HMViewController.h" #import "HMStatus.h" #import " ...