检索模块
业务逻辑
- 获取用户数据库ID,这里有个兼容性的业务逻辑:传入的 userId 是 String 类型的,把这个类型使用 parseLong() 方法,如果能转换就是数字类型,直接根据 userId 查询看这个用户是否存在返回这个数字格式;如果转换失败说明传进来是 userName, 那么就根据用户名查询再返回 userId.
- 生成文本向量,获得 List<Float[]> 集合。判断该集合是否为空,若为空则向量生成失败,仅仅使用文本匹配进行搜索
- 在 ES 中进行 KNN 召回。召回窗口 tok * 30(300个结果),向量中存储的字段名为 "vector",传入向量集合,设置返回结果和候选结果各300个。
- 对于召回对象进行过滤:首先必须和 query 查询关键词匹配,主要是和 textContent 存储中的关键词进行匹配,ES 对于这个所以使用的是 text 类型,添加了中文分词器

浙公网安备 33010602011771号