我一直在寻找PHP,SQL根据搜索条件从DB中检索数据的开放脚本。现在,每个脚本我偶然发现了也不会在此顺利:我在哪里可以找到优秀的数据库搜索引擎脚本?
说我要找的“奥巴马 同性恋权利的政策”好吗?但在DB 有“同性恋的奥巴马政策和 他们的权利 - 诚实的文章”。尽管这是一个相关的结果, 定期搜索与通配符不会 检索任何东西。
你知道如何解决这个问题吗?我不愿意自己写一个,加上它是一个容易出错的方法。显然有很多网站使用这种机制,我只是没有找到那样的幸运。
谢谢!
我一直在寻找PHP,SQL根据搜索条件从DB中检索数据的开放脚本。现在,每个脚本我偶然发现了也不会在此顺利:我在哪里可以找到优秀的数据库搜索引擎脚本?
说我要找的“奥巴马 同性恋权利的政策”好吗?但在DB 有“同性恋的奥巴马政策和 他们的权利 - 诚实的文章”。尽管这是一个相关的结果, 定期搜索与通配符不会 检索任何东西。
你知道如何解决这个问题吗?我不愿意自己写一个,加上它是一个容易出错的方法。显然有很多网站使用这种机制,我只是没有找到那样的幸运。
谢谢!
你似乎在寻找一个全速文本搜索引擎的种类。
DBMS在存储和检索部署信息方面做得非常出色。当你发现他们更有限的,当它涉及到的关键词的基础上进行搜索,部分的标题等
一些的DBMS,提供一些内置或多或少集成全文检索引擎,这通常是一个不错的选择,因为它允许使用SQL功能和谓词或FT功能处理数据(或其中的一部分)。
MySQL确实支持全文搜索功能(感谢Yacoby的信息!!!)。例如参见MySQL 5.4 documentation on Full-Text Search functions。
请注意,此功能据说很慢(请参阅此答案后的评论)。
如果你不想看看MySQL的FT搜索功能,有很多商业和免费的,其中许多是开源的全文引擎。
我曾经使用过,并建议
但你应该寻找到一个更完整的列表,在此Wikipedia article关于这一主题。
你会想要使用数据库full text search功能。实施应该能够通过匹配搜索条件的结果来返回结果。
大多数数据库都具有此功能,但至少使用MySQL时,它不会索引长度小于4个字符的字词(默认情况下),这是共享主机上的问题,因为他们可能不愿改变它。
如果你想要更高的性能解决方案还是有不支持全文检索数据库,有各种语言的专用搜索引擎,如Lucene
你使用哪种数据库? Mysql,sqlite,ms sql,Oracle ...? – tuinstoel 2009-11-24 18:45:32
MySQL,根据我的理解,这通常是与PHP一起使用的RDBMS。 – Gal 2009-11-25 13:10:27