【问题标题】:Is using ElasticSearch and Azure Search as regular data stores combined with search appropriate?将 ElasticSearch 和 Azure 搜索用作常规数据存储并结合搜索是否合适?
【发布时间】:2015-05-13 19:55:35
【问题描述】:

我们仍在决定使用 Azure VM 上的 ElasticSearch 或 Azure 搜索服务作为我们的搜索存储库。但是,对于用户帐户等,是否需要创建单独的 db(在 SQL Azure 甚至另一个 noSQL db 中)?

【问题讨论】:

    标签: elasticsearch azure-sql-database azure-cognitive-search


    【解决方案1】:

    不,无需创建单独的数据库帐户即可使用 Azure 搜索(或 Azure VM 上的 ElasticSearch)。 Azure 搜索是一种基于 REST API 的服务,您可以将数据推送到“索引”,此时它变得可搜索,也可以通过此 REST API。我能想到的唯一可能需要 SQL 帐户的情况是使用我们的新索引器,它会自动从 Azure SQL 或 Azure VM 数据库上的 SQL Server 将数据(和数据更改)摄取到 Azure 搜索中。

    【讨论】:

    • 我应该补充一点,您使用创建 Azure 搜索服务时提供的“api-key”进行身份验证。
    【解决方案2】:

    我认为您要问的是您是否可以使用 Elasticsearch/Azure Search 作为应用程序中所有内容的主要存储,而不仅仅是可搜索的数据。

    你当然可以。您需要记住几个方面(我相信除此之外还有其他方面):

    1. 持久性:当搜索索引只是一个索引时,有时可以在没有副本或只有 1 个副本的情况下运行。如果您想要强大的持久性,您可能需要至少 3 个索引副本,以确保可用性和对索引损坏等问题的恢复能力。

    2. 一致性。 Elasticsearch 有一个弱一致性模型,它也出现在 Azure 搜索中。您需要在编写应用程序时考虑到这一事实,这会使某些场景变得棘手。 SQL 和 DocumentDB 等其他存储提供了严格一致性的选项,这对于主存储来说更容易使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多