我在哪里可以找到出色的数据库搜索引擎脚本?

时间:2009-11-24 18:36:49

标签: sql database search

我一直在寻找根据搜索条件从DB检索数据的PHP,SQL开放脚本。现在,我偶然发现的每一个剧本都不会很好:

  

说我正在寻找“ barack obama's   同性恋权利政策“好吗?但在数据库中   有关于同性恋者的奥巴马政策   他们的权利 - 一篇诚实的文章“。虽然这是一个相关的结果,   使用通配符的常规搜索不会   检索任何东西。

你知道如何解决这个问题吗?我不想自己写一个,加上它是一个容易出错的方法。显然有很多网站使用这种机制,我只是没有幸运找到这样的东西。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可能希望使用数据库full text search功能。实现还应该能够根据搜索条件的匹配程度返回结果 大多数数据库都具有此功能,但至少使用MySQL,它不会索引长度小于4个字符的单词(默认情况下),这是共享主机上的一个问题,因为它们可能不愿意更改它。

如果您想要更高性能的解决方案或者拥有不支持全文搜索的数据库,可以使用各种语言的专用搜索引擎,例如Lucene

答案 1 :(得分:1)

您似乎正在寻找各种全文搜索引擎

DBMS在存储和检索现场信息方面做得很好。正如您所发现的那样,在搜索关键字,部分等标题时,它们会受到更多限制。

有些DBMS提供了一些内置或更多或更少集成的全文搜索引擎,这通常是一个不错的选择,因为它允许使用数据(或其部分) SQL功能和谓词,或FT功能。

MySQL确实支持FullText搜索功能(感谢Yacoby提供的信息!!!)。例如,请参阅MySQL 5.4 documentation on Full-Text Search functions 请注意,此功能据说很慢(请参阅此答案后的评论)。

如果您想要了解MySQL的FT搜索功能,那么有许多商业和免费的,其中许多是开源的全文引擎。

我曾与之合作并推荐

  • Lucene / Solr
  • dtSearch
  • MSSEARCH

但您应该在此Wikipedia article上查看有关此主题的更完整列表。

答案 2 :(得分:1)

我建议Sphinx(适用于MySQL,PostgreSQL和Firebird