我有一个php分类网站(大部分),我目前正在使用MYSQL作为数据库。 稍后我将使用SOLR或Sphinx作为“搜索引擎”。
我希望用户能够查看之前搜索过的“结果”,但我不知道从哪里开始......
这是怎么做到的?
目前我有一个填写的表单,在提交时,php只会再次检查一个mysql表,看看是否有任何匹配。
我应该存储“搜索条件”并在用户每次点击之前的搜索时进行新搜索,还是应该存储结果?我宁愿进行新搜索,因为自上次搜索以来可能已插入新项目了!
如果您需要更多输入,请告诉我,我会更新此问号。
由于
答案 0 :(得分:2)
嗯......如果你基本上是在谈论“保存的搜索”,我现在正在做类似的事情,以便我只有一个单独的表格....
saved_search_id(主要)| user_id(外国)| search_name | criteria1 | criteria2 | criteria3 ... etc
所以基本上我现在可以向用户显示他们创建的已保存搜索列表,并且该表存储了该搜索的一部分标准。然后,我可以使用这些保存的条件随时运行已保存的搜索。
这有帮助吗?
答案 1 :(得分:1)
使用查询字符串参数($_GET
)作为搜索表单。然后用户可以为搜索添加书签。如果需要,可以在应用程序中创建书签功能,但确实没有必要。
如果您担心性能问题,请确保正确调整数据库的缓存设置,并且不要经常写入表。 MySql将在缓存方面做得很好。
答案 2 :(得分:0)
您已经说过:如果用户应该看到旧查询的新结果,您将不得不以某种方式存储搜索参数,并在用户请求时重新进行搜索。
答案 3 :(得分:0)
存储搜索条件。这是非常明显的,好像数据更改用户将获得旧结果。并考虑一段时间后结果可能需要的空间:)
我还会考虑存储搜索条件而不是实际查询。如果您更改数据库,存储的搜索仍然可以,因为您还需要更新查询生成引擎,但您很可能忘记更新每个存储的查询。