ElasticSearch实战——结合文本分析,推荐算法和元启发式算法实现资源自动分配
【摘要】 案例介绍¶工作中有很多工作调度和资源匹配的场景,比如客服,技术支持或工单分派:带有文本描述的工单被录入系统,模糊匹配资源库中的人力资源,然后被分配给最适合的人处理。在一些场景中,工单的执行结果和评价也会被记录,作为工单分派信息的一部分被保留。由于场景复杂而且缺少标准化的问题描述,很多这类匹配问题仍然依赖人工,造成匹配时间延迟,匹配资源基于个人喜好和习惯而非基于可量化的标准。另外由于工单和资源...
案例介绍¶
工作中有很多工作调度和资源匹配的场景,比如客服,技术支持或工单分派:带有文本描述的工单被录入系统,模糊匹配资源库中的人力资源,然后被分配给最适合的人处理。在一些场景中,工单的执行结果和评价也会被记录,作为工单分派信息的一部分被保留。
由于场景复杂而且缺少标准化的问题描述,很多这类匹配问题仍然依赖人工,造成匹配时间延迟,匹配资源基于个人喜好和习惯而非基于可量化的标准。另外由于工单和资源的数据量巨大,一般的数据库查询很难满足实时查询需求。
为了解决查询性能和文本模糊匹配的问题,在案例中尝试使用了工业级实时分布式搜索引擎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 非关系型数据库的解决方案
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.
作者|谭菁
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)