带你读《Elastic Stack 实战手册》之70:——4.1.2.实现主流搜索引擎广告置顶显示效果(上)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之70:——4.1.2.实现主流搜索引擎广告置顶显示效果(上)

4.1.2.实现主流搜索引擎广告置顶显示效果


创作人:铭毅天下

审稿人:李捷

 

本应用实践,主要针对 Elasticsearch 如何实现类似百度广告置顶显示,给定商品数据的效果展开介绍,例如实现置顶显示某特定数据,像搜索某关键词,出现关联广告置顶显示的效果。

 

举例:某搜索引擎 “电动汽车”,结果如下:


image.png


上面实现的本质:

 

返回结果的第一页头1条或多条数据是服务端(如电商网站、主流搜索引擎)指定的数据,而非按照相关度评分计算得出的结果数据。

 

这时候,不禁要问 Elasticsearch 能实现类似功能不?

 

拆解实现

 

Elasticsearch from + size 分页实现机制的原理(大致意思):

 

page 1:from 0,size:10——返回第 0 到 第 9 条数据。

page 2:from 10,size:10——返回第 0 到 第 19 条数据,截取第 10 到 第 19 条数据;

page 3:from 20,size:10——返回第 0 到 第 29 条数据,截取 第 20到 第 29 条数据。

......

 

本质是深度分页,肯定越往后翻页响应越慢。

 

要实现根据固定关键词,添加特定数据置顶显示的效果,探讨方案如下:

 

方案一:不重新分页,牺牲首页部分数据

 

不再做重新分页,强制将 page 1 部分数据,换成:类【广告位】置顶显示数据。

显然,会有数据丢失,导致搜索精准率下降,用户一般不会接受。

 

方案二:重新内存分页

 

将类【广告位】置顶显示数据 + 已有返回的前 10 页(举例:100 条数据)重新组合后,再分页。

 

需要内存维护一堆数据,有较大内存开销。用户期望翻页越深(比如:100页+),维护数据越大,处理越慢、延时会越明显。

 

方案三:其他方案

 

类主流搜索引擎实现的方法或者新的实现机制。

但此时要想,有没有更简洁的实现方式呢?

Elastic 官方没有考虑这个用户需求吗?

有的,从 Elasticsearch 7.4.0 新增的 pinned query 就能实现这种功能。

 

Pinned query 介绍

 

Pinned query 是 Elasticsearch 7.4.0 版本之后,实现的增强检索功能。

Pinned:中文翻译为“固定”。

Pinned query 则可以解释为——固定某些结果,首页置顶显示的检索方式。

下图能形象的说明:绿色的 Pinned results 就是要首页置顶显示的结果。

 

image.png



 《Elastic Stack 实战手册》——四、应用实践——4.1 企业搜索应用场景 ——4.1.2.实现主流搜索引擎广告置顶显示效果(下) https://developer.aliyun.com/article/1226381

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
自然语言处理 搜索推荐 NoSQL
带你读《Elastic Stack 实战手册》之70:——4.1.2.实现主流搜索引擎广告置顶显示效果(下)
带你读《Elastic Stack 实战手册》之70:——4.1.2.实现主流搜索引擎广告置顶显示效果(下)
105 0
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (3)
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (3)
125 0
|
运维 前端开发 Devops
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (4)
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (4)
141 0
|
数据采集 存储 搜索推荐
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (1)
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (1)
257 0
|
存储 搜索推荐
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (2)
带你读《Elastic Stack 实战手册》之4:——3.2.1.企业搜索 (2)
105 0
|
SQL 存储 自然语言处理
ES 在舆情搜索中的实践- Elastic Stack 实战手册
网络舆情监测,主要是利用互联网信息采集技术,以及自然语言处理等智能信息处理技术,通过对互联网公开数据进行自动化抓取,然后对信息进行结构化、自动分类、文本聚类、主题发现与跟踪等,提供信息检索、多维度统计、敏感信息预警、信息简报、自动化报告等功能,帮助用户及时发现危害品牌形象的观点,并为用户分析关注对象在网络中的形象提供依据。
1222 0
ES 在舆情搜索中的实践- Elastic Stack 实战手册
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(7)
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(7)
|
自然语言处理 API 索引
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(3)
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(3)
106 0
|
索引
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(5)
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(5)
104 0
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(9)
带你读《Elastic Stack 实战手册》之34:——3.4.2.17.3.全文搜索/精确搜索(9)
103 0