【问题标题】:How to build a in-site search engine with php?如何用php建立站内搜索引擎?
【发布时间】:2009-11-10 10:15:39
【问题描述】:

我想用 php 建立一个站内搜索引擎。用户必须登录才能查看信息。所以我不能使用 google 或 yahoo 搜索引擎代码。

我想让引擎现在搜索文本和页面,而不是 mysql 数据库中的表。

有人做过吗?你能给我一些指导以帮助我开始吗?

【问题讨论】:

  • 我之前写过一个搜索引擎。如果您想要任何一种中等体面的性能,则需要大量代码。我会建议找到某种类型的插件。
  • @twolfe18 感谢您的建议,虽然我正在寻找一些工具,例如 sphider1.3.4,但它不适用于这个版本。你知道其他一些工具或插件吗?谢谢。

标签: php search


【解决方案1】:

您将需要一个从您的站点(例如,在 cron 作业中)收集页面、剥离 html 并将它们保存在数据库中的爬虫

【讨论】:

  • @Frankie,你有什么推荐的?
  • @garcon1986 搜索引擎必须使用某种数据库才能获得任何速度。有几个可以做得很好,像 Arnaude 建议的 google Sphinx 或 Lucene。对文件执行此操作是行不通的。
【解决方案2】:

您可能想看看 Sphinx http://sphinxsearch.com/ 它是一个可以从 php 脚本轻松访问的搜索引擎。

【讨论】:

    【解决方案3】:

    您可以像广受厌恶的 Experts-Exchange 网站那样作弊。 它们是类似于 StackOverflow 的营利性程序员问答网站。要查看答案,您必须付费,但有时答案会出现在 Google 搜索结果中。很明显,E-E 为网络爬虫呈现不同的页面,而为人类呈现不同的页面。您可以使用相同的技巧,然后将 Google 自定义搜索添加到您的网站。登录后的用户将看到结果,否则他们将被退回到登录屏幕。

    【讨论】:

    • 明确地说,EE 向爬虫和来自 google 的访问者呈现不同的页面。
    • 这被称为伪装,我不推荐它。 (即使EE做了,他们也和google有一些特殊的协议)
    • 如果这需要一些特别的协议 - 那可能是不行的。
    • 当解决方案出现在 Google 上时,您可以向下滚动页面 - 到所有废话的最底部 - 用户可以看到解决方案。这符合 Google 的指导方针 - 无需特殊协议。
    【解决方案4】:

    您可以控制您的服务器吗?然后我建议您安装Solr/Lucene 用于索引和SolPHP 用于与PHP 交互。这样您就可以拥有构面和其他不错的全文搜索功能。

    我不会爬取实际页面,而是会爬取没有导航和其他与内容无关的页面。

    SOLR 需要服务器上的 Java。

    【讨论】:

    • 谢谢,但我认为使用 java 对我来说更复杂。您还有其他建议吗?
    • 这并不难,您将拥有一个非常强大的搜索引擎。绝对不涉及 java 编程。更简单的方法是mysql方式。提出您查询的视图。
    • 谢谢Fontanka,我会尝试使用SolPHP。
    【解决方案5】:

    我最终使用了sphider,它是一个免费工具,它与php 配合得很好。

    谢谢大家。

    【讨论】:

      【解决方案6】:

      如果您的网页内容和标题已经由数据库管理,您只需用 php.ini 编写搜索引擎。有很多解决方案可以查询您的数据库,例如:

      http://www.webreference.com/programming/php/search/

      如果内容只包含在 html 文件中而不是 db 中,您可能需要编写一个蜘蛛。

      您可能也有兴趣缓存结果以提高性能。

      我想说,一切都取决于您的网站/网络应用程序的大小和复杂性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 2018-02-24
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多