【问题标题】:Is there a C# open-source search application which scales cheaply? [closed]是否有可廉价扩展的 C# 开源搜索应用程序? [关闭]
【发布时间】:2010-01-27 12:01:32
【问题描述】:

我需要快速更换具有以下特点的列表网站:

  • 小型数据库(10,000 项,
  • 最常见的活动是搜索整个数据集,返回 1-1000 个项目
  • 流量峰值为每天 100 万次页面展示

现有应用程序的扩展策略是分离只读和读/写活动。多个从数据库用于搜索,并写入一个主数据库,主数据库使用 MS SQL Server 复制更新从数据库。

由于读取活动比写入活动更常见,这已被证明是一种廉价的数据库负载平衡方式,无需真正的集群。

我现在需要替换应用程序 - 是否有任何 C# 开源应用程序可以像这样灵活地扩展?

【问题讨论】:

  • 您是要求替换 SQL Server 还是替换搜索现有数据?
  • 替换搜索和更新数据的应用程序
  • 我不确定我是否理解这个问题,你有一个很好的搜索策略,即 SQL Server。替换前端不应该是您的应用程序的主要开销,C# 与许多其他技术一样适用,我怀疑具有类似的性能特征。是否建议用 C# 后端替换 SQL Server?我认为你想避免重新发明那个轮子,我希望用 MySQL 或 PostgreSQL 替换 SQL Server。
  • 您是说这是一个 3 层应用程序吗?前端-数据访问-SQL Server?
  • 对不起,我试图简洁,但没有提供足够的细节。要替换的应用程序并没有真正分层,并且当前团队不知道代码库,所以要替换表示层,我们真的需要替换整个东西。我要问的是:是否有任何开源应用程序以这种隔离方式进行数据访问?

标签: c# sql-server database open-source load-balancing


【解决方案1】:

在我看来,搜索数据和存储数据是两种不同的业务操作。就个人而言,我是 Lucene.NET 搜索的忠实拥护者,如果它符合您的需求,我会建议进行调查。 Lucene.NET 有许多陷阱,写入索引可能相当慢。在您的情况下,我认为您应该坚持将数据存储在关系数据库(即 SQL Server)中,并考虑修改应用程序的搜索组件。

【讨论】:

  • 我们最终选择了在 Linux 上运行的 Solr (lucene.apache.org/solr) 作为我们的搜索引擎,并使用 .NET 中间层进行预处理和缓存。快速燃烧并不是夸大其词,多面搜索的可能性是无穷无尽的。到目前为止,我们对我们的选择感到非常满意。 Solr 存储库就(高流量)面向公众的应用程序而言是只读的,(读/写)用户数据单独存储在 MS SQL 数据库中。我认为 Solr 可以很好地扩展为读写存储,但这为我们提供了两全其美的优势。
【解决方案2】:

你可以试试SQL Server Express。它是免费的,并且有一个类似于SQL Server Management Studio 的免费管理器。

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2020-05-21
    • 2013-07-07
    相关资源
    最近更新 更多