OpenSearch 最佳实践
OpenSearch : 是一款结构化数据搜索托管服务,为移动应用开发者和网站站长提供简单、高效、稳定、低成本(?)和可扩展的搜索解决方案。
低成本:相对“低成本”,当文档数量到了一定量级后,实例租用等费用也不便宜。。。。大家从自身业务能力及成本综合考虑,到底要不要上opensearch还是另走他法
OpenSearch的产品架构在官方文档处可以查阅
今天我们不谈架构层面的问题,单从使用者的角度来和大家分享下使用OpenSearch的一些值得注意的点,忝为最佳实践:)
前提
假设你已经接触过opensearch, 有了一定的opensearch的概念及使用基础,那么这篇分享很适合你
版本的选择
opensearch有2个版本应用可创建,大家应根据业务场景进行选择
标准版
做搜索加速,实时,仅支持单表,不支持下拉提示,部分区域不支持标准版。
高级版
多表联合检索,且对实时性要求不是非常高(以我们的使用情形看,阿里云保证的准实时还是有保障的)
主表与附表
当用到高级版opensearch并且需要多表联合检索时,其中一个很重要的概念就是主表与附表,按照官方解释:主表与附表仅支持 N : 1的关系,打个比方,如果主表是商品,附表是商铺,那么多个商品可以属于一个商铺,但是反过来却不行;那么在业务开发中,如何更加快速的确定哪个表是主表呢?我的常用做法是:
假设有表A、B、C,A与B通过字段x_id关联;A与C通过y_id关联;那么基本可以确定A作为主表,验证的方法是,假定A中有一条记录rowA,通过这条记录的x_id能不能找到唯一的一条B记录,通过y_id能不能找到唯一的一条C记录,如果均可以,那么,A即主表
明确了主附表后,我们定义完应用结构后,可以看一看是否设置正确,所有表是否都关联上了。如下图:灰色底的表为主表,白色底的表为附表