Elasticsearch
Elasticsearch 2.4.1
26MB 小巧好用
elasticsearch 中索引相当于database
数据清除办法
Elasticsearch 与 关系型数据库 名称对比
|关系型数据库|elasticsearch|
|———-|:————-:|
| database | index |
| table | type |
| row | document |
| column | field |
| row | document |
| schema | mapping |
| index | (全部) |
| sql | query DSL |elastic 存储数据的路径:
/var/lib/elasticsearch/nodes/0/indices/{nameOfYourIndex}/(0-4}/index
- 增加
|
|
- 删除
|
|
- 修改
|
|
- 查询
|
|
- 搜索
|
|
组合查询
- bool查询
- must,should,must_not 与/或/非
- minimum_should_match: 表示一个文档至少匹配多少个短语才算时匹配
- disable_coord: 启用和禁用一个文档中包含所有查询关键词的分数得分计算,默认是false
- boosting查询
- positive部分:查询返回的查询结果分值不变
- negative部分:查询的结果分值会被降低
- negative_boost部分:设置negative中要降低的分值
- constant_score查询
- 优点:可以让一个查询得到一个恒定的分值
- indices查询 -> 在多个索引里面查询
- no_match_query 查询其他索引里的数据
- bool查询
Filter 过滤 (有cache)
- filter 查询语句
- cache 缓存
开启方式:在filter查询语句后面加”_cache”:true
注意:
Script filters,Geo-filters,Date ranges 这样的过滤方式开启cache无意义
exits,missing,range,term和terms查询是默认开启cache的
bulk 批量操作
{action:{metadata}}\n
{request body}\n
{action:{metadata}}\n
{request body}\n
…
例:{“delete”:{“_index”:”library”,”_type”:”books”,”_id”:”1”}}
action(行为) | 解释 |
---|---|
create | 当文件不存在时创建之。 |
index | 创建新文档或替换已有文档 |
update | 局部更新文档 |
delete | 删除一个文档 |
Elasticsearch 版本控制version –》 锁 –》 悲观锁/乐观锁
- 内部版本控制:_version自增长,修改数据后,_version会自动加1
- 外部版本控制:为了保持_version与外部版本控制的数值一致,使用version_type=external,
检查数据当前的version值 是否小于请求中的version值
12345678910111213141516171819202122232425262728293031PUT twitter/books/1{"title":"eeeeeeeeee title eeeeeeeeeeeee","name":{"first":"Zachary","last":"Tong"},"publish_data":"2015-02-06","price":"59.99"}get twitter/books/1post /twitter/books/1/_update?version=333 //内部版本控制,指定外部版号为333, 会提示冲突{"doc":{"price":11}}外部版本控制机制,指定的version=5 大于当前版本就okversion 由外部提供PUT /twitter/books/1?version=5&version_type=external{"title":"ttttt 3333 ttt","name":{"first":"cccc","last":"Tang"}}
cluster
- auto-discovery
- auto-elected master
- data replication / partition
- with flexible shard /replica setting
shard 相当于 mysql 中 partition
是介于 database 和 document之间 ,一个database 包括多个shard- more shard
- faster indexing / scaling
- more shard
replica 相当于 mysql的 duplication
- faster searching / failover
stats api
- 取得各项数据
- 文件数、搜索次数、累计搜索时数、累计建索引时间
- cluster/primary/node/index 各种级别
- JVM CPU/Heap / OS /Thread /transport 使用状态
参考:
Cool Bonsai Cool - An introduction to ElasticSearch
The Road to a Distributed Search Engine
elasticsearch, Big Data, Search & Analytics
- 数据备份
使用elasticdump