我有一个 webapp 开发问题,我已经开发了一个解决方案,但我正在尝试寻找其他想法来解决我看到的一些性能问题。
问题陈述:
- 用户输入几个关键字/标记
- 应用程序搜索令牌的匹配项
- 每个令牌需要一个结果
- 即,如果一个条目有 3 个令牌,我需要 3 次条目 ID
- 对结果进行排名
- 为令牌匹配分配 X 点
- 根据点对条目 ID 进行排序
- 如果点值相同,则使用日期对结果进行排序
我想要做的,但还没有想出的是,发送 1 个查询,该查询返回类似于 in() 的结果,但为检查的每个条目 id 的每个令牌匹配返回一个重复的条目 id。
有没有比我正在做的更好的方法来做到这一点,即使用多个单独的查询,每个令牌运行一个查询?如果是这样,实现这些的最简单方法是什么?
编辑
我已经对条目进行了标记,例如,“see spot run”的条目 id 为 1,三个标记“see”、“spot”、“run”,它们位于单独的标记表中,具有与它们相关的条目 ID,因此表可能如下所示:
'see', 1
'spot', 1
'run', 1
'run', 2
'spot', 3