我一直在寻找根据搜索条件从DB检索数据的PHP,SQL开放脚本。现在,我偶然发现的每一个剧本都不会很好:
说我正在寻找“ barack obama's 同性恋权利政策“好吗?但在数据库中 有关于同性恋者的奥巴马政策 他们的权利 - 一篇诚实的文章“。虽然这是一个相关的结果, 使用通配符的常规搜索不会 检索任何东西。
你知道如何解决这个问题吗?我不想自己写一个,加上它是一个容易出错的方法。显然有很多网站使用这种机制,我只是没有幸运找到这样的东西。
谢谢!
答案 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搜索功能,那么有许多商业和免费的,其中许多是开源的全文引擎。
我曾与之合作并推荐
但您应该在此Wikipedia article上查看有关此主题的更完整列表。
答案 2 :(得分:1)