我在用Redisearch来做我的项目。项目中有不同的指标,如job_idx、company_idx、article_idx和event_idx (article_idx和event_idx结构非常相似)。索引用于不同的页面,例如:职务页面搜索使用的job_idx,公司页面搜索使用的company_idx。
问题是在主页上,搜索引擎应该从每个索引返回结果,那么我应该调用搜索4次吗?我认为我的案子应该有更好的解决办法。
发布于 2020-06-15 16:36:48
FT.SEARCH命令允许您将一个索引作为参数传递。因此,如果已经有4个索引,则需要调用该命令4次。
每个实体都有一个索引通常是最简单的,但最后一个问题是如何设计物理数据模型以最好地支持查询。这可以从完全分离的索引到任何东西的单个索引(例如,带有类型字段的“all_fields”索引)。最好的实现可能在中间的某个位置(非常类似于关系数据库系统中的“规范化与非规范化数据库模式”)。
对于您来说,一个潜在的解决方案可能是创建一个额外的索引(例如,名为combined_homepage),该索引是在主页上搜索所需的特定字段上的索引。然后,该索引将使您能够执行一次搜索。
然而,这个额外的索引确实需要更多的空间。因此,考虑到您不想从头开始重新思考物理数据模型,您要么投资于空间(内存)以实现更有效的访问,要么花费更多的时间用于计算和网络(用于合并客户端的4个查询的结果)。
希望这会有所帮助,即使我的回答基本上可以归结为“这取决于”:-)。
https://stackoverflow.com/questions/62339986
复制相似问题