搜索引擎的网站

时间:2010-08-02 12:25:28

标签: php mysql

我正在尝试为网站构建搜索引擎。它主要是一些带有PHP的HTML / CSS页面的集合。现在就是这样。我在页面上的所有内容。

从我的理解能够做到这一点,我需要在数据库上有内容,我是否正确?

如果是这样,我正在考虑这样做,创建一个包含四列“关键字”“标题”“内容”和“链接”的MySQL表。

  • 关键字 - 将保留一个单词,如果它在查询中将显示为最可能的结果。
  • 标题 - 搜索关键字搜索后,标题会产生最相关的结果
  • 内容 - 应该是找到某些东西的最后资源,因为它会更加混乱我相信
  • 链接 - 只是属于特定行的链接。

我将使用PHP和MySQL实现它,将所有内容,标题等放入数据库中会很烦人。这是一个好方法还是我应该看别的东西?

感谢。

--------------- EDIT -------------------

Lucene似乎是一个不错的选择,但即使阅读了入门并在网上看了一下我无法理解它是如何工作的,有人能指出我以某种非常基本的方式解释这个问题吗?特别是考虑到我不知道如何编译任何东西。

谢谢。

5 个答案:

答案 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全文搜索功能外,这可能是您最简单的选择。