大数据测试 - 搜索引擎测试
引言
工作中接触到电商搜索引擎的测试,没有一个同一的方法论,往往都是按者需求走,因此补充了一下这方面的知识。以下内容摘抄自: 《阿里巴巴测试之道》
信息检索与ES的区别:
信息检索(Information Retrieval,简称IR)和Elasticsearch(ES)是两个不同的概念,尽管它们在某些方面有重叠。
信息检索是一门学科,研究信息的获取、表示、存储、组织和访问。它是一个广泛的领域,包括但不限于搜索引擎,还涉及问答系统、信息抽取、信息过滤等。信息检索的目的是有效地找到、组织和呈现信息,以满足用户的信息需求。
Elasticsearch则是一个具体的工具,是一个基于Lucene开发的开源搜索引擎,具有高扩展性和分布式特性。它主要用于全文搜索、分析和探索大规模数据集。Elasticsearch支持通过简单的RESTful API进行操作,使得全文搜索变得简单。此外,它还提供了丰富的API和工具,使得处理和分析数据变得更加容易。
简而言之,信息检索是一个更广泛的领域,涵盖了从理论到实践的多个方面,而Elasticsearch是这一领域中的一个具体应用工具,专门用于实现高效的全文搜索和分析。两者之间的关系可以比喻为理论和工具的关系,信息检索提供了理论框架和方法,而Elasticsearch是实现这些理论的一种具体技术实现
信息检索与ES的关系:
Elasticsearch (ES) 与信息检索(Information Retrieval, IR)密切相关。 Elasticsearch 是一个基于Lucene的搜索引擎,它提供了强大的搜索和过滤功能,使得无论是在内部系统还是外部的互联网站上,都能提供高效的数据检索服务。Elasticsearch 的设计和实现原理基于信息检索的理论和算法,如空间向量模型、布尔模型、倒排索引、相似度算法等,这些都是信息检索领域的重要组成部分。
Elasticsearch 的核心功能包括全文搜索和精确查询加速,它能够处理复杂的查询条件,支持任意组合查询,提供快速的查询速度,这在很多场景下替代了传统数据库的复杂条件查询。此外,Elasticsearch 使用 Json 格式承载数据模型,实际上已经成为一个文档型数据库,擅长基于查询搜索的分析型数据库操作,倾向于OLAP(在线分析处理)方式,这与传统的关系型数据库(如MySQL、Oracle等)在二维表上的结构化数据存储和查询形成鲜明对比。对于非结构化数据(如文本、图像、音频等),Elasticsearch 通过全文检索的方式提供高效的搜索服务,这是信息检索领域的一个重要应用。
总的来说,Elasticsearch 通过其强大的搜索和过滤功能,以及基于Lucene的核心技术,为信息检索领域提供了新的解决方案,使得数据处理和分析更加高效和灵活。无论是从理论还是实践的角度来看,Elasticsearch 与信息检索领域的关系都十分密切,共同推动了数据处理和分析技术的发展
大数据应用测试的介绍
近十年来,随着移动互联网和只能设备的兴起,越来越多的数据被沉淀到各大公司的应用平台上。这些包含大量用户特征和行为日志的数据被海量地存储起来,先经过统计分析与特征样本提取,再经过训练,就能生成相应的业务算法模型。把用户的行为数据转化为可以预测未来行为的模型的过程是一个典型的机器学习的过程。这些模型就像智能的机器人,能精准地识别和预测用户的行为和意图。如果把数据作为一种资源,那么拥有大数据的互联网公司与传统公司的本质区别就在于,它是资源的生产者,而不是资源的消耗者。随着互联网平台的使用频率和运营时间的增加,互联网公司的大数据资源会呈指数级增长。互联网平台使用这些数据和模型,反过来又给人们带来更好的用户体验和商业价值。阿里巴巴集团的搜索、推荐和广告是非常典型的大数据应用场景 —— 高维稀疏业务场景 。
大数据应用测试要解决的问题是什么
在介绍如何测试之前,我们需要先了解下互相网平台处理数据的工程技术背景。搜索、推荐、广告系统在工程架构和数据处理流程上比较相近,一般分为离线系统和在线系统两部分。
离线系统负责数据处理与算法模型的建模与训练,在线系统主要用于处理用户的实时请求。在线系统会使用离线系统训练产出的模型进行实时在线预测,例如预估点击率。用户在访问手机淘宝或者其他App的时候会产生大量的行为数据,包括浏览、搜索、点击、购买、评价、停留时长等。商家也会提供商品维度的各类数据,如果有广告那么还会增加广告主维度的数据,这些数据经过采集过滤处理与特征提取后,成为模型所需的样本数据,样本数据在机器学习训练平台上经过离线训练后,可以生成用于在线服务的各类算法模型(例如深度兴趣演化网络DIEN、Tree-based Deep Model、大规模图表示学习、基于分类兴趣的动态相似用户向量召回模型等)。在线系统中最重要的功能是数据的检索和在线预测服务,这些功能一般通过信息检索的相关技术,例如,数据的正倒排索引、时序存储等实现。搜索推荐广告系统在使用了上述维度的大数,并经过深度学习后,成为一个千人前面的个性化系统。对于不同的用户请求,展现的商品和推荐的自然结果与商业结果都不尽相同,即便是同一个用户在不同时刻得到的结果也会随着用户行为的不同而改变,这就是数据和算法模型的魅力。
在思考搜索、推荐、广告系统是如何测试的这个问题之前,我们首先定义问题域,即要解决的测试问题是是什么,我们的思路从以下几个方向展开。
- 功能性测试与验证。除了正常的请求与响应的检查,大数据的"大"主要体现在数据的完整性或丰富性上。一个搜索推荐引擎的好坏在很大程度上取决于其内容是否足够丰富、召回是否足够多样。另外,算法带来推荐结果的不确定性,也给测试验证工作造成了麻烦。所以,数据的完整性和不确定性校验也是功能性测试与验证的要点。
- 数据更新的实时性测试。 众所周知,一个搜索或广告的在线计算引擎内部数据的更新,可能是商家对于商品信息进行变更导致的,也可能是广告主对于创意甚至投放计划进行的变更导致的,这些更新需要实时反馈在投放引擎上,否则会出现信息不一致、甚至错误。如何测试和验证这些数据更新的及时性,即保证一定的并发带宽,又保证更新链路的响应时间,是测试需要重点关注的问题。
- 数据请求响应的及时性测试。在线服务都要求低延迟,每次查询服务端都需要在几十毫秒内给出结果,而整个服务端的拓扑会由大概30多个不同模块构成。如何测试后端服务的性能和容量就变得至关重要。
- 算法的效果验证。搜索、推荐甚至广告的返回结果需要与用户的需求和兴趣下相匹配,只有这样才能保证更高的点击率与成交转化,但如何验证这种需求与结果的相关性,或者如何测试一个算法的效果,是非常有趣且有挑战性的话题。
- AI算法系统的线上稳定性保证。发布之前的测试是对代码的测试验收,随着Bug 不断被发现与修复,代码质量得到提升。而线上稳定性运营的目的是提升系统运行的稳定性,目标是通过技术运维的方法来提升系统的高可用性与鲁棒性,并降低线上故障的频次与影响。这部分也被称为线上技术风险领域。
- 工程效率方向。这是对以上几个方向的补充,甚至是对整个工程研发体系在效率上的补充。质量与效率是一对孪生兄弟,也是同一个硬币的两面,如何平衡好二者之间的关系是一个难题,在不同的产品发展阶段有不同的侧重点。我们提升工程效率的方向是完成DevOps 研发工具链路,以提升研发的工程生产力。
相关性评估
什么是相关性评估?
相关性评估指评测搜索引擎的相关性,即测评用户查询的关键词(Query) 与返回商品(Item) 的匹配程度,影响因素有标题、图片、属性、行业等。但从广义上讲,相关性可以理解为用户查询的综合满意度,即从用户进入搜索框的那一刻起,到需求获得满足为止,这之间经历的过程越顺畅,操作越便捷,搜索相关性就越好。
相关性评估的意义:
对于搜索引擎,适当频率的相关性评估必不可少。评估可以对服务质量起到监督作用。通过实施更新搜索引擎后方数据信息,不断改进搜索核心技术方法,科学的取样、评估和统计方法,都可以对搜索引擎的现状有比较清晰的了解。
相关性评估的流程如下:
- 根据特定的规则抽取代表性的关键词,组成一个规模适当的集合
- 构成查询集合后,使用这些关键词和不同的(新/旧) 算法环境在数据抓取平台中进行数据抓取
- 对抓取结果进行(人工)标注。
- 根据标注的评估结果,使用预定好的评估计算公式,用数值化的方法评价搜索系统的准确性
相关性评估的规则:
GoB 评估规则:我们将关键词与返回结果的匹配程度分为如下四个等级。
- Good(完全符合):图片内容、重要属性、行业等,都与关键词相符。
- Fair(部分相符):行业相符。但有个别非重要属性不符,可分为产品不符、款式不符、材质不符、适用品牌不符、型号不符、颜色不符、功能不符、图案不符、风格不符、季节不符、年龄不符、旗舰店不符、网红店铺不符、主件出配件、非同款、其他属性不符。
- Bad(完全不符或重要属性不符):行业、品牌,或其他重要属性不相符,可分为类目不符、品牌不符、性别不符,配件出主件。
- Nj(失效数据): query语义不明或链接失效。
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/18387643