大数据培训技术Elasticsearch检索

发布时间:2021年01月25日作者:atguigu浏览次数:629

Elasticsearch检索

2.8.1、检索文档

Mysql : select * from user where id = 1

ES : GET /atguigu/doc/1

响应:

大数据培训

我们通过HTTP方法GET来检索文档,同样的,我们可以使用DELETE方法删除文档,使用HEAD方法检查某文档是否存在。如果想更新已存在的文档,我们只需再PUT一次。

2.8.2、简单检索

Mysql : select * from user

ES : GET /megacorp/employee/_search

响应内容不仅会告诉我们哪些文档被匹配到,而且这些文档内容完整的被包含在其中—我们在给用户展示搜索结果时需要用到的所有信息都有了。

3、全文检索

ES : GET /megacorp/employee/_search?q=haha

查询出所有文档字段值为haha的文档

4、搜索(模糊查询)

ES : GET /megacorp/employee/_search?q=hello

查询出所有文档字段值分词后包含hello的文档

5、聚合

PUT atguigu/_mapping/doc

{

  “properties”: {

    “interests”: {

      “type”: “text”,

      “fielddata”: true

      }

  }

}

Group by

Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计。它很像SQL中的GROUP BY但是功能更强大。

举个例子,让我们找到所有职员中最大的共同点(兴趣爱好)是什么:

GET /atguigu/doc/_search

{

  “aggs”: {

    “all_interests”: {

      “terms”: { “field”: “interests” }

    }

  }

}

暂时先忽略语法只看查询结果:

大数据培训

我们可以看到两个职员对音乐有兴趣,一个喜欢林学,一个喜欢运动。这些数据并没有被预先计算好,它们是实时的从匹配查询语句的文档中动态计算生成的。如果我们想知道所有姓”Smith”的人最大的共同点(兴趣爱好),我们只需要增加合适的语句既可:

GET /atguigu/doc/_search

{

  “query”: {

    “match”: {

      “last_name”: “smith”

    }

  },

  “aggs”: {

    “all_interests”: {

      “terms”: {

        “field”: “interests”

      }

    }

  }

}

 

all_interests聚合已经变成只包含和查询语句相匹配的文档了:

  …

  “all_interests”: {

     “buckets”: [

        {

           “key”: “music”,

           “doc_count”: 2

        },

        {

           “key”: “sports”,

           “doc_count”: 1

        }

     ]

  }

PUT atguigu/_mapping/doc/

{

  “properties”: {

    “interests”: {

      “type”:     “text”,

      “fielddata”: true

    }

  }

}

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)