elasticsearch学习一

来源:互联网 发布:淘宝商品被降权怎么办 编辑:程序博客网 时间:2024/06/06 20:18

1.安装
下载地址
downloads
2.运行
解压后,进入/elasticsearch-5.4.1/bin,执行 ./elasticsearch -d以守护进程启动,浏览器访问http://localhost:9200/?pretty
返回
{
“name” : “PXFsrz0”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “r6FDRQcjQFKWT3YWWwg5gQ”,
“version” : {
“number” : “5.4.1”,
“build_hash” : “2cfe0df”,
“build_date” : “2017-05-29T16:05:51.443Z”,
“build_snapshot” : false,
“lucene_version” : “6.5.1”
},
“tagline” : “You Know, for Search”
}
安装marvel
想安装es的插件Marvel,又去了官网, 上面的安装指令是bin/plugin install marvel-agent,我瞅着不对呀,我怎么记得没这个plugin,接着又在官方找呀找 sudo bin/elasticsearch-plugin install [plugin_name]
好吧,原来是这样,从es5.0开始,不再支持安装plugin了
3.概念
(1).集群
集群的名字唯一,默认是elasticsearch,不同的环境集群的名字最好不一样,否则你可能加入一个新的节点导致整个集群挂掉。
(2)节点
存放数据的es实例,同一个集群里面的节点可以互相通信,共享数据,协同工作
(3)Java API,都使用9300端口与集群通信,使用elasticsearch传输协议通信
a.节点客户端,加入集群,但是不存放数据,可以找到存放数据的节点,并且把请求转发过去
b.传输客户端
更轻量级的客户端,可以将请求转发到远程集群,不加入集群
4.查询语句
使用查询字符串查询
/indices/type/row
/indices/type/_search
/indices/type/_search?q=field:value
使用DSL(Domain specific Language 特定领域语言)语句查询
/indices/type/_search
{
“query”:{
“match”:{
“field”:”value”
}
}
}
使用过滤器结构化搜索:
match_all:能够查询到所有文档,是没有查询的默认语句
match:
term(过滤)用于精确匹配field中包含关键字的文档
terms:类似term,允许指定field中多种匹配条件
range:允许我们查找field指定范围的数据
exists与missing:判断field中是否含有某个关键字
bool:可以合并多个过滤条件的查询结果的布尔逻辑,包含的操作符:
must(相当于and)
must_not(相当于 not)
should (相当于or)
search API中只能包含query语句,所以我们需要用filtered来同时包含“query”和“filter”子句:

{“query”:{    “filtered”:{                “query”:{“match”:{“email”:“meeting”}},                “filter”:{“term”:{“folder”:“inbox”}}        }    }}

聚合
每个聚合都是一个或者多个桶和零个或者多个指标的组合,桶在概念上类似于 SQL 的分组(GROUP BY),而指标则类似于 COUNT() 、 SUM() 、 MAX() 等统计方法。

粗暴的用sql语句来类比
SELECT COUNT(color)
FROM table
GROUP BY color
桶(Buckets)
满足特定条件的文档的集合,GROUP BY color 相当于桶
指标(Metrics)
对桶内的文档进行统计计算,COUNT(color) 相当于指标

原创粉丝点击