如何存储搜索条件或搜索结果?

3
我有一个PHP分类广告网站(主要是)目前正在使用MYSQL作为数据库。之后我将使用SOLR或者可能是Sphinx作为“搜索引擎”。
我想让用户能够查看他们以前进行的搜索的“结果”,但我不知道从哪里开始...
这是怎么做的?
目前,我有一个表单,填写后提交,PHP只是检查MySQL表是否有任何匹配项。
我应该存储“搜索条件”并在用户单击其以前的任何搜索之一时进行新搜索,还是应该存储结果?我更喜欢进行新的搜索,因为自上次搜索以来可能已经插入了新条目!
如果您需要更多输入,请告诉我,我会更新此问题。
谢谢

你已经回答了自己的问题。 “我应该存储'搜索条件'并在用户单击其先前搜索之一时每次进行新搜索,还是应该存储结果?我更喜欢进行新搜索,因为自上次搜索以来可能已插入新项目!”这回答了你的疑问,无论如何你都需要进行新的搜索, 1.正如你所指出的,可能已添加新项 2.与存储搜索结果相比,存储搜索条件将始终更容易且占用更少的空间。所以,只需存储搜索条件。 - mkamthan
4个回答

2
嗯…如果你基本上是在谈论“保存的搜索”,我目前正在做类似的事情,所以我只需有一个单独的表格,其中包含以下内容…
saved_search_id(主键)| user_id(外键)| search_name | criteria1 | criteria2 | criteria3…等等
所以基本上我现在可以向用户显示他们创建的保存的搜索列表,而表格存储了作为该搜索一部分的条件。然后我可以使用这些保存的条件随时运行保存的搜索。
这有帮助吗?

1

使用查询字符串参数($_GET)来处理搜索表单。这样用户就可以将搜索结果加入书签。如果你想的话,可以在应用程序中创建一个书签功能,但实际上并不需要。

如果你关心性能问题,请确保你的数据库缓存设置正确,并且不要过于频繁地写入表格。这样 MySql 就可以很好地进行缓存了。


0
你已经说过了:如果用户应该看到旧查询的新结果,那么你必须以某种方式存储搜索参数,并在用户请求时重新执行搜索。

0

存储搜索条件。这很明显,因为如果数据发生变化,用户将得到旧的结果。并考虑一段时间后结果可能占用的空间 :)

我还会考虑真正存储搜索条件而不是实际查询。如果更改数据库,则存储的搜索仍将起作用,因为您需要更新查询生成引擎,但您很可能会忘记更新每个存储的查询。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接