【发布时间】:2010-01-31 20:34:48
【问题描述】:
在你们所有人的帮助下,我终于设法让 Solr 工作了,非常感谢! 我不得不说,我现在明白你为什么推荐它了,它真的很强大。
现在,这个问题...
我已将所有“可搜索”信息索引到Solr,我的计划是查询Solr,然后获取查询结果的ID:s(所有记录,即每条记录都有一个ID 字段值) ,然后我将其用于query MySQL 并获取其余信息。
因此,首先查询 Solr,下一个 solr 为所有匹配查询的广告发回 id:s,然后我使用 ID:s 查询 MySQL 以获取其余信息。
我的问题是,当使用 MySql 做部分时,我是否应该将所有收到的 ID:s 保存到 array,然后 query mysql 以查找具有这些 ID:s 的所有记录?
我应该做这样的事情吗? (可能包含一些代码错误):
for ($i=0; $i<$id_from_solr.length; $i++){
mysql_query("SELECT * FROM table_name WHERE ad_id=$id_from_solr[$i]");
}
以上似乎不是是一个好的解决方案,因为它每次循环时都会执行“新查询”!
你会怎么做?
后续问题: 与不使用排序函数相比,在 MySQL 查询中添加排序函数会减慢速度吗?例如:
ORDER BY insert_date ASC
最后一个问题: 反正有没有缓存 MySQL 结果,所以在排序时,我不必进行新查询?
非常感谢!
如果您需要更多信息,请告诉我,我会更新此 Q!
【问题讨论】:
-
如果使用 ORDER BY 查询很慢,请尝试在该库仑上添加一个 INDEX。
-
我认为您的意思是“缓存”而不是“捕获” - 为了清楚起见,我进行了此编辑。