【问题标题】:Set different page length for each search query为每个搜索查询设置不同的页面长度
【发布时间】:2015-09-08 11:19:48
【问题描述】:

如文档https://docs.marklogic.com/7.0/guide/java/intro#id_71012中所述

文档管理器在初始配置后是线程安全的;无论您有多少线程,每种文档类型只需要一个文档管理器。

我想为每个查询指定不同的页面长度。但我发现这样做的唯一方法是调用 QueryManager 的相应方法。所以我需要自己同步:

synchronized (queryManager) {
    queryManager.setPageLength(messagesOnPage);
    queryManager.search(queryDefinition, searchHandle, pageNo);
}

问题:是否可以以不同的方式指定页面长度(例如在 QueryDefinition 中设置)?

我正在使用 Marklogic 7.0,client-api-java 2.0.5

谢谢, Hlib

【问题讨论】:

    标签: java multithreading marklogic nosql


    【解决方案1】:

    该文档并未试图警告管理器跨线程共享内部状态。

    相反,它试图澄清,只要管理器的配置不改变,您就可以跨线程共享单个管理器对象。

    如果您只在一个线程中使用查询管理器对象,它对其他线程是不可见的,因此您不需要将更改同步到查询管理器。如果您有许多线程使用 QueryManager,您应该为每个线程创建一个新的 QueryManager,因为您正在更改页面长度。

    希望对您有所帮助,

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多