【问题标题】:Search engine to integrate in a .NET stack集成到 .NET 堆栈中的搜索引擎
【发布时间】:2011-01-10 21:59:44
【问题描述】:

我正在寻找一个非常强大的软件搜索引擎来集成到 .Net 网站中。

当前提出的解决方案是 Lucene.NET 一个基于 Lucene 的堆栈。不过,我想在下定决心之前先评估一下其他搜索引擎。

我们需要的功能集如下:

  • 能够通过 HTTP 抓取任意页面
  • 能够解析站点地图
  • 能够通过数据库查找获取要解析的 URI 列表
  • 能够将搜索限制为特定语言/区域设置
  • 能够将搜索限制在页面子集(例如,通过 URI 上的正则表达式)
  • 速度和可扩展性(这适用​​于拥有大量流量的公共网站)
  • 必须具有 .NET API 支持或可以封装在 .NET API 中的基于 http 的超级简单 API
  • 依赖语言的全文支持

其他很棒的东西,但如果不受支持,则不会破坏交易:

  • 报告
  • 结果的混叠和偏差
  • 基于 HTTP 的管理页面
  • SQL Server 支持

还有哪些其他软件搜索引擎对您有用?您有什么建议或我们应该避免的吗?

【问题讨论】:

    标签: c# search full-text-search search-engine


    【解决方案1】:

    我建议您查看Solr。它是基于 Java 的,但符合基于 HTTP 的 API 要求,旨在运行在与主应用程序不同的盒子/集群上(因此您不一定需要在同一硬件上使用 Java 和 .NET),并且它有很大的动力。自从我使用它已经有一段时间了,但我不记得它提供了自己的爬虫。如果情况仍然如此,那么使用独立的爬虫和上述 API 来使其工作应该很简单。

    【讨论】:

      【解决方案2】:

      您是否考虑过使用封装它并提供更多类似于您所追求的功能的东西,而不是直接使用 Lucene.Net?

      Solr 是一个 Apache 产品,它可以做到这一点,并且还有一个 .Net client port of。我从来没有在生产中使用过它,但它看起来像你所追求的东西。

      类似的想法是Nutch(由最初编写 Lucene 的人编写),尽管我不知道它的任何 .Net 版本。 Nutch 确实有一个蜘蛛组件来抓取网站。

      【讨论】:

      • Solrnet 不是 Solr 的 .net 端口,它是一个客户端库。
      【解决方案3】:

      正如其他人所说,definitley 使用 Solr 与原始 Lucene 一起使用。将它与 .Net 集成非常简单。实际上,我最近才在博客上写过这个:http://crazorsharp.blogspot.com/2010/01/full-text-search-using-solr-lucene-and.html

      【讨论】:

        【解决方案4】:

        Lucene.Net 是一个信息检索库,而不是搜索引擎。特别是它不会做任何事情:

        • 抓取网页或解析站点地图
        • 报告
        • 基于 HTTP 的管理页面
        • SQL Server 支持(Lucene.Net 使用自己简单但高效的文件格式,不使用 SQL Server)

        虽然我是 SQL 或 SQL 的坚定支持者,并且会推荐它作为搜索引擎的全文搜索组件,但您还需要一个爬虫/html 解析器组件才能创建一个功能齐全的搜索引擎,而您将不得不仔细设计您的 Lucene.Net 索引,以最大限度地提高您想要的查询的性能(按语言/区域设置搜索)

        尝试查看Solr 项目,这是一个使用 Lucene 的成熟搜索引擎 - 这可能更适合您的需求。

        【讨论】:

          【解决方案5】:

          查看 Microsoft 的 Search Server Express,尽管该页面目前看起来很糟糕,所以试试这个 link

          还有其他企业引擎,例如vivisimo velocity(非常可扩展)、自治等。Lucene 和 Solr 受到限制,难以使用和配置,但当您想要免费的东西时,这就是您所得到的。

          【讨论】:

            【解决方案6】:

            Coveo 是我们目前用来替换已使用多年的Google Mini 的搜索引擎。我只是指出这些是值得探索的,因为我还没有使用足够多的东西来了解它们有多好。我只知道每个、很多很多的头痛。

            【讨论】:

              【解决方案7】:

              你也可以看看OpenSearchServer

              在 Windows 上运行就像一个魅力。您可以使用 SOAP Web 服务进行集成。

              还有一个使用 XML/REST API 的 C# 框架库。

              免责声明:我是 OpenSearchServer 的 CEO

              【讨论】:

              • 感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion。另请注意,每次链接到自己的网站/产品时,都要求发布免责声明。
              • 你好安德鲁。谢谢你的通知。仔细阅读常见问题解答后,尤其是“我可以在这里推广我所属的产品或网站吗?”主题,我无法找到有关这种免责声明的任何细节。什么是好的做法?
              • 根据您的适当角色调整此内容,但类似:“免责声明:我是 OpenSearchServer 团队的负责人”,在链接或任何提及它之后发布。请注意,当有人问特别是关于如何在您的任何产品上做某事的问题时,这并不重要,“我如何用 OpenSearchServer 装配我的 sprockets?” - 您可以在不透露信息的情况下回答这类“帮助”问题。
              • @AndrewBarber,您可以像我一样简单地自己修复它 - 这个网站是协作编辑的 :-)
              • @Sklivvz 我主要希望能够为未来阐明这一点。我最初也不是 100% 确定他与它有关联(只是几乎可以肯定!呵呵)。但这仍然是一个好点:-)
              猜你喜欢
              • 2011-05-21
              • 1970-01-01
              • 2020-02-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多