带你读《Elastic Stack 实战手册》之69:——4.1.1.Elasticsearch 在舆情搜索中的实践(下)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之69:——4.1.1.Elasticsearch 在舆情搜索中的实践(下)

《Elastic Stack 实战手册》——四、应用实践——4.1 企业搜索应用场景 ——4.1.1.Elasticsearch 在舆情搜索中的实践(中) https://developer.aliyun.com/article/1226421



典型业务场景

 

情绪走势


image.png

 通过“情绪走势”图,可以看出一个舆情事件,在一段时间,不同情感表达上的数据分布情况,为了方便使用 ES 的聚合统计功能,对每篇文档的发布时间,设置了news_posthour(文档发布时间所在的小时)冗余字段,文档的情绪news_mood_pri字段,通过在 DSL 中嵌套使用 aggregation ,就可以在一次查询中获得对应的图表数据。

比如查询在微博上与疫情相关的博文在某一天每小时的情绪走势,查询语法如下:


GET weibo_2021-04-08/_search
{
  "query": {"bool": {"must": [
    {"match_phrase": {
      "news_title": "疫情"
    }}
  ]}},
  "size": 0,
  "aggs": {
    "NAME": {
      "terms": {
        "field": "news_mood_pri",
        "size": 10
      },
      "aggs": {
        "NAME": {
          "terms": {
            "field": "news_posthour",
            "size": 24
          }
        }
            }
    }
  }
}

通过上面的嵌套查询 DSL 语句,就可以快速获取到不同情绪分类下,每个小时段的数据量。

 

热门主题词


image.png



通过一个事件的热门主题词,可以直观的了解到一个事件的大概内容。这里也是通过 ES 的聚合功能实时获取主题词的统计数据。为了能够实时获取主题词的统计数据,这里用一个事件中提到每个主题词的文档数量,来当作主题词的数量(相当于默认每个主题词在文档中只出现一次),并没有用每篇文档的主题词的绝对量。这样做有一个好处,可以使用 ES 的 aggregation 功能实时聚合获取统计数据,再配合 TF-IDF 算法,计算每个词的相对权重。

 

在设置索引 schema 时,定义了news_keywords_list字段, 用于保存单篇文档的分词结果列表,然后使用如下的语法,就可以快速统计每个词对应的文档数量:

 

GET weibo_2021-04-08/_search
{
  "query": {"bool": {"must": [
    {"match_phrase": {
      "news_title": "疫情"
    }}
  ]}},
  "size": 0,
  "aggs": {
   "NAME": {
      "terms": {
        "field": "news_keywords_list",
        "size": 10
      }
    }
  }
}

通过上面的 DSL 语句,可以快速统计出高频词以及与其相关的文档数量。

 

创作人简介:

王欢,近 10 年内容大数据领域从业经验,安徽云计算产业促进会开发者工作委员会发起人之一,阿里云 MVP。擅长高并发系统设计、数据中台构建等,目前在一家人工智能企业担任技术VP,主要关注 AI 算法平台构建、AI 算法在内容分析领域落地等。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
Elasticsearch采坑实践总结
Elasticsearch采坑实践总结
76 0
|
8月前
|
存储 监控 安全
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践1
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
117 0
|
2天前
|
存储 监控 固态存储
elasticsearch索引生命周期管理(ILM):原理和实践
elasticsearch索引生命周期管理(ILM):原理和实践
|
2天前
|
存储 JSON API
Elasticsearch中的模板:定义、作用与实践
Elasticsearch中的模板:定义、作用与实践
|
2天前
|
搜索推荐 Java 数据库
Java中的ElasticSearch集成与实践
Java中的ElasticSearch集成与实践
|
1月前
|
数据采集 数据挖掘 索引
Elasticsearch “指纹”去重机制,你实践中用到了吗?
Elasticsearch “指纹”去重机制,你实践中用到了吗?
36 7
|
1月前
|
存储 Java Maven
SpringBoot整合Jest和Elasticsearch实践
SpringBoot整合Jest和Elasticsearch实践
138 1
|
1月前
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【4月更文挑战第17天】本文介绍了在Java环境下使用Elasticsearch实现全文检索的步骤。首先,简述了Elasticsearch的功能和安装配置。接着,通过Maven添加`elasticsearch-rest-high-level-client`依赖,创建`RestHighLevelClient`实例连接Elasticsearch。内容包括:创建/删除索引,插入/查询文档。还探讨了高级全文检索功能、性能优化和故障排查技巧。通过Elasticsearch,开发者能高效处理非结构化数据,提升应用程序价值。
|
8月前
|
存储 缓存 搜索推荐
百度搜索:蓝易云【Elasticsearch 底层技术原理以及性能优化实践】
和副本、优化硬件、设计合理的索引、编写高效的查询以及利用缓存和预热等策略。通过综合考虑这些方面,可以提升Elasticsearch的性能并获得更好的搜索和分析体验。
294 0
|
1月前
|
存储 JSON 测试技术
异步检索在 Elasticsearch 中的理论与实践
异步检索在 Elasticsearch 中的理论与实践
45 0

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版