ElasticSearch实战——结合文本分析,推荐算法和元启发式算法实现资源自动分配

网友投稿 1098 2022-05-29

案例介绍¶

工作中有很多工作调度和资源匹配的场景,比如客服,技术支持或工单分派:带有文本描述的工单被录入系统,模糊匹配资源库中的人力资源,然后被分配给最适合的人处理。在一些场景中,工单的执行结果和评价也会被记录,作为工单分派信息的一部分被保留。

由于场景复杂而且缺少标准化的问题描述,很多这类匹配问题仍然依赖人工,造成匹配时间延迟,匹配资源基于个人喜好和习惯而非基于可量化的标准。另外由于工单和资源的数据量巨大,一般的数据库查询很难满足实时查询需求。

为了解决查询性能和文本模糊匹配的问题,在案例中尝试使用了工业级实时分布式搜索引擎elasticsearch,并结合元启发式算法simulated annealing根据历史数据寻找各个搜索键值的权重提升匹配准确度。

ElasticSearch简介

背景

1.1 思考:大规模数据如何检索?

如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:     1)用什么数据库好?(mysql、sybase、oracle、达梦、神通、mongodb、hbase…)    2)如何解决单点故障;(lvs、F5、A10、Zookeep、MQ)    3)如何保证数据安全性;(热备、冷备、异地多活)    4)如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)     5)如何解决统计分析问题;(离线、近实时)

1.2 传统数据库的应对解决方案

1)通过主从备份解决数据安全性问题;   2)通过数据库代理中间件心跳监测,解决单点故障问题;   3)通过代理中间件将查询语句分发到各个slave节点进行查询,并汇总结果

1.3 非关系型数据库的解决方案

ElasticSearch实战——结合文本分析,推荐算法和元启发式算法实现资源自动分配

1)通过副本备份保证数据安全性;   2)通过节点竞选机制解决单点问题;   3)先从配置库检索分片信息,然后将请求分发到各个节点,最后由路由节点合并汇总结果

基础

2.1 ES定义

ES=elaticsearch简写, Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。   Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2.2 ES主要解决问题:

1)检索相关数据;   2)返回统计结果;   3)速度要快。

2.3 全文检索

全文检索就是对一篇文章进行索引,可以根据关键字搜索,类似于mysql里的like语句。   全文索引就是把内容根据词的意义进行分词,然后分别创建索引,例如”你们的激情是因为什么事情来的” 可能会被分词成:“你们“,”激情“,“什么事情“,”来“ 等token,这样当你搜索“你们” 或者 “激情” 都会把这句搜出来。

2.4 特点和优势

1)分布式实时文件存储,可将每一个字段存入索引,使其可以被检索到。   2)实时分析的分布式搜索引擎。   分布式:索引分拆成多个分片,每个分片可有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片,并且协调和处理各种操作;   负载再平衡和路由在大多数情况下自动完成。   3)可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。也可以运行在单台PC上(已测试)   4)支持插件机制,分词插件、同步插件、Hadoop插件、可视化插件等。

2.5 性能结果展示

(1)硬件配置:   CPU 16核 AuthenticAMD   内存 总量:32GB   硬盘 总量:500GB 非SSD  (2)在上述硬件指标的基础上测试性能如下:   平均索引吞吐量: 12307docs/s(每个文档大小:40B/docs)   平均CPU使用率: 887.7%(16核,平均每核:55.48%)   构建索引大小: 3.30111 GB   总写入量: 20.2123 GB   测试总耗时: 28m 54s.

附件: es_blog.rar 72.06KB 下载次数:3次

Elasticsearch

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云享新鲜】社区周刊·Vol.58-企业级Redis电子书重磅发布;华为云推出限量NFT云宝
下一篇:《Python3智能数据分析快速入门》—2.4 Python I/O
相关文章