搜索数据库表中用户输入关键字的最佳方法是什么?

时间:2010-06-21 20:58:02

标签: php sql mysql search

我想建立一个产品搜索引擎。

我正在考虑使用谷歌网站搜索,但这真的是搜索谷歌的网站索引。我不想搜索那个。我希望在给定关键字的数据库中搜索特定的表(所有字段,甚至是用户从未看到的字段)。

但是我希望这次搜索能够尽可能强大,我想知道是否已经有了我可以使用的东西?如果不是最好的方法来自己制作它?

5 个答案:

答案 0 :(得分:6)

您可以尝试将Sphinx full-text search用于MySQL。

这也是IBM使用PHP的tutorial

答案 1 :(得分:2)

我首先关注MySQL全文搜索。看看这些链接:

以下是第一个链接的摘录:

  

使用执行全文搜索   MATCH()... AGAINST语法。的 MATCH()   采用以逗号分隔的列表   命名要搜索的列。    AGAINST需要一个字符串来搜索,   和一个可选的修饰符   表示搜索的类型   执行即可。搜索字符串必须是a   文字字符串,不是变量或   列名。有三种类型   全文搜索:

答案 2 :(得分:1)

就那些已经存在的东西而言,看看这些:

答案 3 :(得分:1)

SELECT * FROM table WHERE value REGEXP'searchterm'

允许您使用许多熟悉的搜索技巧,例如+,“”等

这是MySQL的本机功能。无需使用可能更快的新语言或插件,但也需要额外的时间进行维护,故障排除等。

它可能比做一些疯狂的基于C ++的mashup慢一点,但用户通常不会注意到毫秒之间的差异......

答案 4 :(得分:1)

您可能还想要研究的一件事(如果您不打算使用狮身人面像),stemming your keywords。它会使匹配的关键字更容易一些(因为词干'奶酪'和'俗气'最终会产生相同的词干),这使得你的关键词匹配更加灵活。