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