仅需要jdk,下载解压即可,最好修改下elasticsearch.yml
cluster.name
node.name
es有非常丰富的插件,建议安装下面几个
bigdesk
资源监控和集群管理插件 bin/plugin -install lukas-vlcek/bigdesk http://127.0.0.1:9200/_plugin/bigdesk
elasticsearch-head
数据查询插件 bin/plugin -install mobz/elasticsearch-head http://localhost:9200/_plugin/head/
elasticsearch-kopf
集群资源查看和查询插件,和head一起用吧,head偏数据查询一点 bin/plugin --install lmenezes/elasticsearch-kopf http://localhost:9200/_plugin/kopf
es是文档数据库,和一般rdbms的类比
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)
具体的可以通过head插件查看
建立3个测试数据
PUT /megacorp/employee/1 { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] } PUT /megacorp/employee/2 { "first_name" : "Jane", "last_name" : "Smith", "age" : 32, "about" : "I like to collect rock albums", "interests": [ "music" ] } PUT /megacorp/employee/3 { "first_name" : "Douglas", "last_name" : "Fir", "age" : 35, "about": "I like to build cabinets", "interests": [ "forestry" ] }
es的查询非常强大,举个让cassandra蛋疼的模糊查询的例子
POST /megacorp/employee/_search { "fields": [ "first_name" ], "query": { "wildcard": { "last_name": "*mi*" } } }
fields是显示哪些字段,具体的dsl看http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-query.html
再贴一个and查询
POST /megacorp/employee/_search
{ "query": { "bool": { "must": [ { "wildcard": { "last_name": "*mi*" } }, { "match": { "first_name": "John" } } ] } } }
关于es的集群,虽说是主从配置,但是用起来,基本上不需要考虑这些问题,master,slave的切换是es内部处理的,对外面完全透明,可以用bigdesk插件查看;集群支持动态添加节点,和cassandra差不多,非常方便。
创建索引(数据库)的时候,可以指定shards和replicas的数量,也可以动态修改replicas的数量,这对于需要横向扩展的时候,非常有用。
贴一个大神的翻译,非常感谢他的辛苦工作