我正在尝试为网站构建搜索引擎。它主要是一些带有PHP的HTML / CSS页面的集合。现在就是这样。我在页面上的所有内容。
从我的理解能够做到这一点,我需要在数据库上有内容,我是否正确?
如果是这样,我正在考虑这样做,创建一个包含四列“关键字”“标题”“内容”和“链接”的MySQL表。
我将使用PHP和MySQL实现它,将所有内容,标题等放入数据库中会很烦人。这是一个好方法还是我应该看别的东西?
感谢。
--------------- EDIT -------------------
Lucene似乎是一个不错的选择,但即使阅读了入门并在网上看了一下我无法理解它是如何工作的,有人能指出我以某种非常基本的方式解释这个问题吗?特别是考虑到我不知道如何编译任何东西。
谢谢。
答案 0 :(得分:2)
从头开始构建搜索引擎很痛苦。事实上,这是一项有趣的任务,所以如果是为了学习,那就去做吧!
但是,如果您只是需要为您的网站提供良好的搜索功能,请使用其他人为您做的事情。 Apache Lucene是一种选择。
答案 1 :(得分:1)
Sphinxsearch是一个开源的全文搜索服务器,从头开始设计性能,相关性(又称搜索质量)和集成简单性。
Sphinx允许您批量索引和搜索存储在SQL数据库,NoSQL存储中的数据,或者只是快速,轻松地搜索数据 - 或者动态索引和搜索数据,与Sphinx一样使用数据库服务器。
答案 2 :(得分:0)
我假设您的网页是静态HTML。您可以一次执行两项操作并在数据库中传输页面内容,以便通过从数据库中读取内容来动态生成它们。
无论如何,我认为你的策略至少对于一个基本的搜索引擎来说是可以的。另请查看MySQL fulltext search。
答案 3 :(得分:0)
MySQL全文搜索将是最容易设置的,但它会比Sphinxsearch慢很多。甚至Lucene也比Sphinx慢。因此,如果速度是一个标准,我建议你抽出时间来精益求精并实施Sphinx。
在他的一个演讲中,Andrew Aksyonoff(Sphinx的创始人)介绍了以下内容 基准测试结果。使用了大约350万条记录,大约5 GB的文本 为了这个目的。
MySQL Lucene Sphinx
索引时间,分钟1627 176 84
索引大小,MB 3011 6328 2850
全部匹配,ms / q 286 30 22
匹配短语,ms / q 3692 29 21
匹配bool top-20,ms / q 24 29 13
除了基本搜索之外,还有许多功能使Sphinx成为更好的解决方案 搜索。这些功能包括多种属性,标记设置,字形, HTML处理,geosearching,排名和许多其他
答案 4 :(得分:0)
Zend Lucene是一个纯粹的PHP搜索实现,非常有用。
另一个搜索选项是solr,它基于lucene,但为了产生更多类似google的结果,为你做了很多繁重的工作。除了使用Mysql MyISAM全文搜索功能外,这可能是您最简单的选择。