安装es:http://www.jianshu.com/p/a4d236ed17c3
安装head:http://blog.youkuaiyun.com/u013066244/article/details/63279337
最后将head/_site/app.js 中的localhost改成自己的ip就行了
分片
主分片
副本分片
索引(index)
类型(type)
id
一旦文档被存储在Elasticsearch中,它就可以在集群的任一节点上被检索
每一个字段的数据都是默认被索引的,也就是说,每个字段专门有一个反向索引用于快速检索
我们的数据被存储和索引在分片(shards)中,索引只是一个把一个或多个分片分组在一起的逻辑空间
replication
复制默认的值是sync
。这将导致主分片得到复制分片的成功响应后才返回。
如果你设置replication
为async
,请求在主分片上被执行后就会返回给客户端。它依旧会转发请求给复制节点,但你将不知道复制节点成功与否。
上面的这个选项不建议使用。默认的sync
复制允许Elasticsearch强制反馈传输。async
复制可能会因为在不等待其它分片就绪的情况下发送过多的请求而使Elasticsearch过载。
~~~~~~~~~
乐观锁:
跟新文档时,如果担心高并发问题可以这样:
PUT /website/blog/1?version=1 <1>
{
"title": "My first blog entry",
"text": "Starting to get the hang of this..."
}
指定版本,如果版本不一致,更新失败
响应体类似这样:
{
"error" : "VersionConflictEngineException[[website][2] [blog][1]:
version conflict, current [2], provided [1]]",
"status" : 409
}
所有更新和删除文档的请求都接受version
参数,它可以允许在你的代码中增加乐观锁控制
put 方法常用于更新
如果已经存在,就不添加,可以用 curl -XPUT 'http://master:9200/people/stu/1?op_type=create' -d {},这样就不会覆盖已经存在的了
post方法常用于新增
mapping
string
类型的字段,默认的,考虑到包含全文本,它们的值在索引前要经过分析器分析,并且在全文搜索此字段前要把查询语句做分析处理。
我们可以给新添加的字段添加映射,但不能改变已经存在的映射类型:
我们可以更新一个映射来增加一个新字段,但是不能把已有字段的类型那个从analyzed
改到not_analyzed
。
PUT /gb/_mapping/tweet
{
"properties" : {
"tag" : {
"type" : "string",
"index": "not_analyzed"
}
}
}