码迷,mamicode.com
首页 > 其他好文 > 详细

elasticsearch的基础语句介绍 聚合功能很强大 可以分析数据

时间:2015-06-12 11:46:23      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:elasticsea   数据   nosql   数据库   聚合   

elasticsearch聚合功能很强大 可以分析数据,比MySQL更加强大。可以根据爬山归类到运动。。。
下面是 安装以及一些基础命令
安装
curl -L -O http://download.elasticsearch.org/PATH/TO/VERSION.zip <1>
unzip elasticsearch-VERSION.zipcdelasticsearch?VERSION

插件
./bin/plugin -i elasticsearch/marvel/latest

禁用监控,关闭Marvel:
echo ‘marvel.agent.enabled: false’ >> ./config/elasticsearch.yml

运行
cd /usr/share/elasticsearch
./bin/elasticsearch

打开另一个终端运行测试:
curl ‘http://localhost:9200/?pretty
你能看到以下信息:{
“status”: 200,
“name”: “Shrunken Bones”,
“version”: {
“number”: “1.4.0”,
“lucene_version”: “4.10”
},
“tagline”: “You Know, for Search”
}
这说明你的ELasticsearch集群已经启动并运行

数据库对比
关系数据库(Relational DB) -> 库(Databases) -> 表(Tables) -> 行(Rows) -> 列(Columns)
Elasticsearch -> 索引(Indices) -> 类型(Types) -> 文档(Documents) -> 字段(Fields)

创建数据
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/3
{
“first_name”: “Douglas”,
“last_name”:”Fir”,
“age”:35,
“about”:”I like to build cabinets”,
“interests”:[“forestry”]
}
注意到路径 /megacorp/employee/1 包含三部分信息:
名字
说明
megacorp 索引名
employee 类型名
1 这个职员的ID

搜索全部员工的请求:
GET /megacorp/employee/_search
查询一条
GET /megacorp/employee/_search?q=_id:AU3leyatuy05ZviT4RuM

DSL语句查询 json格式
GET /megacorp/employee/_search
{
“query” : {
“match” : {
“last_name” : “Smith”
}
}
}
全文模糊 全文搜索
GET /megacorp/employee/_search
{
“query” : {
“match” : {
“about” : “rock climbing”
}
}
}
查询 about 包含完整短语“rock climbing”的员工。
GET /megacorp/employee/_search
{
“query” : {
“match_phrase” : {
“about” : “rock climbing”
}
}
}

高亮查询结果
GET /megacorp/employee/_search
{
“query”:{
“match_phrase”:{
“about”:”rock climbing”
}
},
“highlight”:{
“fields”:{
“about” : {}
}
}
}

牛逼的聚合功能
GET /megacorp/employee/_search
{
“aggs”: {
“all_interests”: {
“terms”: { “field”: “interests” }
}
}
}

结果
“aggregations”: {
“all_interests”: {
“doc_count_error_upper_bound”: 0,
“sum_other_doc_count”: 0,
“buckets”: [
{
“key”: “music”,
“doc_count”: 4
},
{
“key”: “sports”,
“doc_count”: 4
},
{
“key”: “forestry”,
“doc_count”: 3
}
]
}
}

自动把员工的爱好归类 比如 爬山 归类到运动!!聚合功能就是在分析数据

姓”Smith”的兴趣爱好最多的是
GET /megacorp/employee/_search
{
“query”: {
“match”: {
“last_name”: “smith”
}
},
“aggs”: {
“all_interests”: {
“terms”: {
“field”: “interests”
}
}
}
}

统计每种兴趣下职员的平均年龄
GET /megacorp/employee/_search
{
“aggs” : {
“all_interests” : {
“terms” : { “field” : “interests” },
“aggs” : {
“avg_age” : {
“avg” : { “field” : “age” }
}
}
}
}
}

elasticsearch的基础语句介绍 聚合功能很强大 可以分析数据

标签:elasticsea   数据   nosql   数据库   聚合   

原文地址:http://blog.csdn.net/merlin_feng/article/details/46469081

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!