【问题标题】:How to store search criteria or search results?如何存储搜索条件或搜索结果?
【发布时间】:2011-01-02 10:42:19
【问题描述】:

我有一个 php 分类网站(主要是),我目前正在使用 MYSQL 作为数据库。 稍后我将使用 SOLR 或 Sphinx 作为“搜索引擎”。

我想让用户能够查看他们之前进行的搜索的“结果”,但我不知道从哪里开始......

这是怎么做到的?

目前我有一个已填写的表单,当提交时,php 只是再次检查一个 mysql 表以查看是否有任何匹配项。

我应该存储“搜索条件”并在用户每次点击他们以前的搜索时进行新的搜索,还是应该存储结果?我宁愿重新搜索,因为自上次搜索后可能已插入新项目!

如果您需要更多意见,请告诉我,我会更新此 Q。

谢谢

【问题讨论】:

  • 你自己回答了你的问题。 “我应该存储‘搜索条件’并在用户每次点击他们以前的搜索时进行新的搜索,还是应该存储结果?我更愿意进行新的搜索,因为自最后搜索!”这回答了您的查询,无论如何您都需要进行新的搜索,因为 1. 正如您所指出的,可能已添加新项目 2. 与存储搜索结果相比,存储搜索条件总是更容易并且占用更少的空间。所以,只需存储搜索条件。

标签: php sql mysql html search


【解决方案1】:

嗯...如果您基本上是在谈论“已保存的搜索”,我目前正在做类似的事情,所以我只有一个单独的表...

saved_search_id(主要)| user_id (外文) |搜索名称 |标准1 |标准2 |标准3 ...等

所以基本上我现在可以向用户显示他们创建的已保存搜索的列表,并且该表存储了作为该搜索一部分的条件。然后我可以随时使用这些保存的条件运行保存的搜索。

这有帮助吗?

【讨论】:

    【解决方案2】:

    对搜索表单使用查询字符串参数 ($_GET)。然后用户可以为搜索添加书签。如果需要,您可以在应用程序中创建书签功能,但实际上没有必要。

    如果您担心性能,请确保正确调整数据库的缓存设置,并且不要过于频繁地写入表。那时MySql会做好缓存工作。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        存储搜索条件。这很明显,好像数据更改用户会得到旧的结果。并考虑一段时间后结果可能占用的空间:)

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          相关资源
          最近更新 更多