【问题标题】:php/mysql search results - filter result when type >1 while keeping results where other types not >1 - codeigniterphp/mysql 搜索结果 - 类型 > 1 时过滤结果,同时保留其他类型不 > 1 的结果 - codeigniter
【发布时间】:2013-12-23 01:54:15
【问题描述】:

对于标题道歉,我仍在努力弄清楚如何解释这一点。

我有一个 codeigniter 网络应用程序,它有一个不错的搜索功能,可以很好地列出结果。我们称其为 airbnb 克隆,其中多个用户创建列表。用户可以创建一个列表,也可以创建多个列表。

在区域中搜索时,会显示每个符合条件的结果。如果用户在搜索结果中有十个列表,则显示所有十个列表。如果用户有多个符合条件的结果,我想将其限制为单个结果。

目前,使用搜索词查询数据库并针对每个结果行返回到 foreach 循环。我正在尝试找出限制单个用户的多个结果的最佳方法,这样一个用户在同一位置有 20 个列表就不会阻塞结果。

我的目标不是阻止搜索用户找到结果,我只是试图控制单个用户的多个列表的显示方式,以免将搜索结果与来自同一用户在同一位置。我不会在搜索结果中单独显示,而是显示包含该用户信息的一般结果,该结果将链接到包含该用户所有可用列表的页面。

有什么想法吗?

我可以在必要时发布一些代码,但我正在尝试先从概念上解决它。

谢谢!

【问题讨论】:

    标签: javascript php mysql codeigniter search


    【解决方案1】:

    确实应该有一些其他类型的指标来确定相关性并根据相关性返回/显示结果,而不管是谁发布的。如果我知道仅仅因为它们来自同一用户而隐藏了良好的结果,我会很生气。

    以棒球卡为例。如果我要搜索“Joe Jackson”,我宁愿选择 20 个来自 Joe Jackson 的用户的结果,而不是来自 Joe Jackson 的 2 个结果、Sam Jackson 的 1 个结果和来自 5 个不同用户的 Bob Jackson 的 7 个结果。

    总而言之,有一些混合结果的例子:
    Mixing different categories results, ordered by score in MySQL
    Order hybrid mixed mysql search result in one query?

    【讨论】:

    • 感谢您的回复。我的目标不是阻止搜索用户找到结果,我只是试图控制单个用户的多个列表的显示方式,以免同一用户的 10 或 100 条结果混淆搜索结果同一个位置。我不会在搜索结果中单独显示,而是显示带有该用户信息的一般结果,该结果将链接到包含该用户所有可用列表的页面。这更有意义吗?
    • 是的,听起来是解决问题的好方法。
    • 我的问题仍然是如何去做。我知道我想做什么,但我不确定最好的编程方式。
    • 最好的办法是加入并开始尝试。如果您对特定代码有特殊问题,请回来提出问题 :)
    猜你喜欢
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多