在多个数据库上执行搜索

Perform search on multiple Database

我们的要求是在多个 MarkLogic 数据库上执行 MarkLogic 搜索功能。我们有两个版本的 Marklogic 7 和 8。此要求有两种情况:

  1. 数据库在一台 MarkLogic 服务器上可用。

    在这种情况下,我们要实现 xdmp:eval()、xdmp:spawn() 以及 MarkLogic 的超级数据库和子数据库概念。但是,我们不确定哪一个是完美的。

  2. 数据库在不同的 MarkLogic 服务器上可用。

    我们不确定在这种情况下要实施什么。但是,我们正在探索 Hadoop 和 MarkLogic 的灵活复制。

请研究这些场景并分享您的最佳想法,以便我们可以朝着正确的方向前进。

正如上面所评论的,退一步讨论是否有必要可能是值得的。 MarkLogic 可以很好地处理混合内容。拥有多个数据库可能会使架构过于复杂。

话虽如此,我对您的问题有一些思考:

  • MarkLogic 数据库不限于单个服务器,而是集群。
  • 您可以使用数据库复制或 Flex-Rep 在集群之间同步数据库。
  • xdmp:eval/spawn 占用开销,并且是一个潜在的安全漏洞(例如使用放大器)。
  • super/sub 数据库开销较小,但请记住,跨超级数据库的范围查询需要在所有包含的数据库中定义匹配的范围索引。
  • 确保数据库 uri 在超级数据库中的唯一性需要额外的努力。

HTH!