ES搜索的问题
问题描述:
风间老师,关于es使用场景,有个问题比较疑惑
我有一个用户表(id,name),一个业务表(id,user_id , sort , others ),处于不同的数据库以及不同的微服务中;
在针对业务表进行搜索的时候会出现一种业务: 模糊搜索用户名,并根据业务中的某个字段或者计算结果排序
尝试过的解决方式:
直接在业务表冗余user_name,缺点是用户更名之后业务无感知,解决方案是用户微服务发布变更更通知到消息队列,业务方统一更新冗余;
使用模糊搜索关键字先在用户中心查找并返回所有符合条件的user_id,在业务中通过 in(userIdList)方式查找数据,但随着用户量增大,返回的id列表会极长;
使用es 构建一个《业务表所有列 + 用户名》的宽表,直接使用es进行检索;同样的问题在于用户名更新时,我如何去更新es记录里面 独立的用户名列(有没有类似方法?如有的话,某用户关联的记录过多是否会有性能问题?)
上面是我目前能想到的一些点,请教一下风间老师哪里可以改进,或者其他更好的方法?
16
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星