Marklogic 在多个数据库上执行搜索

Marklogic 在多个数据库上执行搜索,marklogic,marklogic-8,marklogic-7,Marklogic,Marklogic 8,Marklogic 7,我们的要求是在多个MarkLogic数据库上执行MarkLogic搜索功能。我们有两个版本的Marklogic 7和8。此需求有两种场景: 数据库在一台MarkLogic服务器上可用 在本例中,我们希望实现xdmp:eval()、xdmp:spawn()以及MarkLogic的超级数据库和子数据库概念。但是,我们不确定哪一个是最好的 数据库在不同的MarkLogic服务器上可用 在这种情况下,我们不确定要实现什么。但是,我们正在探索Hadoop和MarkLogic的灵活复制 请研究这些场景,并分

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

  • 数据库在一台MarkLogic服务器上可用

    在本例中,我们希望实现xdmp:eval()、xdmp:spawn()以及MarkLogic的超级数据库和子数据库概念。但是,我们不确定哪一个是最好的

  • 数据库在不同的MarkLogic服务器上可用

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


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

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

    也就是说,我对你的问题有一些想法:

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

    也许值得退一步,谈谈为什么你认为你需要这样做。你能详细说明一下吗?我知道你想讨论什么。但是,这是客户的要求,我们正在探索可能性。要求并不总是神圣的。:)请记住,您不能将来自两个不同数据库的结果干净地合并到一个相关性排序结果集中。这对于任何搜索引擎都是正确的,因为相关性是相对于整个索引的,并且索引是每个数据库的。要将内容保存在一个相关性排序结果集中,您需要使用集合(而不是数据库)进行分段。