当前位置: 首页 > 面试题库 >

PHP MySQL搜索和相关性排序

子车新立
2023-03-14
问题内容

我知道如何进行常规的php mysql搜索并显示结果。但是,由于我要完成的工作的性质,我需要能够按相关性进行排序。让我更好地解释一下:

普通查询“ apple iphone应用程序”将使用%apple iphone
application%搜索数据库,但是如果没有记录以该确切顺序显示该短语,则搜索将不会产生任何结果。

我基本上需要做的是分别搜索“ apple”,“ iphone”和“
applications”,然后将结果合并为一个,然后根据记录中找到多少个单词实例对相关性进行分级。例如,如果我做了我想做的事,它返回了以下内容:

Iphone Applications From Apple
Apple Make The Best Apple Iphone Applications
Iphone Applications

他们的排名如下:

Apple Make The Best Apple Iphone Applications
Iphone Applications From Apple
Iphone Applications

因为找到了搜索词的实例数。参见突出显示:

[Apple] Make The Best [Apple] [Iphone] [Applications]
[Iphone] [Applications] From [Apple]
[Iphone] [Applications]

我希望我已经解释得足够好,如果有人可以给我任何指示,我将不胜感激。


问题答案:

看看MySQL FULLTEXT搜索功能,这些功能应根据相关性自动返回结果,并为您提供更多控制权

使用全文索引的唯一潜在问题是InnoDB表不支持它们。



 类似资料:
  • 怎么搜索我的数据? 怎么使用周边搜索? 怎么高级筛选来找相关数据?

  • 首先,对不起我的英语不好! 我是Lucene图书馆的新人(从上周三开始),我试图了解如何根据找到的术语获得匹配文档的最佳相关性级别。 我使用Lucene 4.10。0(无Solr) 我能够索引/搜索英语/阿拉伯语文本,以及支持这些文本的点击突出显示。 现在我有一个问题与搜索结果的相关性。 如果我在三个文档中搜索“穆罕默德·奥马尔”: 我得到同样的分数为这3文档。 看起来Lucene忽略了单词顺序,

  • 问题内容: 我对MYSQL相对较新,遇到了困扰我一段时间的问题。我已经尝试在所有地方使用Google搜索来寻找答案,但到目前为止仍无法找到可接受的解决方案。 这是我当前正在运行的查询,用于查找给定搜索词的最佳匹配项: 它返回的结果是全面的,因为它们包括所有相关的行。但是,它们没有按照任何特定的顺序排序,我希望在用PHP打印结果时首先显示完全匹配的匹配项。像这样: 1 | 字<精确匹配 2 | 填字

  • 假设我有三个指数:城市、博物馆和景点。 现在我正在查询一个术语的所有索引(),例如“维也纳” 作为结果,我得到: 维也纳:维也纳艺术博物馆 有没有办法优先考虑指数,这样我就可以得到第一个城市,而不是景点,最后是博物馆,就像这样: 维也纳 维也纳的Riesenrad 维也纳:维也纳艺术博物馆 维也纳:维也纳历史博物馆

  • 我需要对以搜索词开头的搜索结果进行优先级排序。我用了“匹配短语前缀”。我用了“匹配短语前缀”。但它不起作用。 细节: > 质疑 结果

  • 主要内容:numpy.sort(),numpy.argsort(),numpy.lexsort(),numpy.nonzero(),numpy.where(),numpy.extract(),numpy.argmax(),numpy.argmin()NumPy 提供了多种排序函数, 这些排序函数可以实现不同的排序算法。 排序算法特征主要体现在以下四个方面:执行速度,最坏情况下的复杂度,所需的工作空间以及算法的稳定性。下表列举了三种排序算法: NumPy排序算法 种类 速度 最坏复杂度 工作空间