来自MySQL表的相关搜索结果

时间:2009-10-29 20:47:42

标签: mysql search

从MySQL表生成超级相关结果的最佳方法是什么?我在表格中有一个包含标题,描述和标签的网站列表。如何在PHP中设置SELECT查询/搜索功能,在所有这三列中找到用户键入的关键字,并尽可能快地保持以下内容:

  • 标题中的匹配将是最相关的,但显然标题中的匹配以及描述/标签将更具相关性
  • 标签中的匹配将是第二个最相关的
  • 关键字可以按任意顺序匹配
  • 不是要求,但如果所有关键字都不匹配,则可以匹配其中任何一个(我不确定这是否会使通话太慢)

我需要对表格进行任何具体更改吗?

3 个答案:

答案 0 :(得分:0)

没有简单的答案。 “虽然尽可能快地保持”并不是一个约束。你必须: 1)设定真正的目标 2)尝试自己实现

最简单的查询可能会很好地完成工作,而您无需执行任何其他操作。

订单总是编写工作代码,尝试它,如果它运行不好,优化它。你反过来这样做,从而浪费你的时间。

答案 1 :(得分:0)

最简单的方法是在所有这些列上使用 full-text index

但是,mysql中的全文索引不能让您对不同列的权重进行细粒度控制。为此,您需要 lucene sphinx

答案 2 :(得分:-2)

自然方法IMHO将让PHP在记录集中移动,因此您可以按记录应用逻辑记录。

您可能希望将来改进逻辑。通过代码处理您的需求可以让您轻松完成。

不能说你的桌面结构,因为你没有提供太多细节。