Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为每个搜索查询设置不同的页面长度_Java_Multithreading_Marklogic_Nosql - Fatal编程技术网

Java 为每个搜索查询设置不同的页面长度

Java 为每个搜索查询设置不同的页面长度,java,multithreading,marklogic,nosql,Java,Multithreading,Marklogic,Nosql,如文件所述 文档管理器在初始配置后是线程安全的;无论有多少线程,每个文档类型都只需要一个文档管理器 我想为每个查询指定不同的页面长度。但我发现的唯一方法是调用QueryManager的相应方法。所以我需要同步我自己: synchronized (queryManager) { queryManager.setPageLength(messagesOnPage); queryManager.search(queryDefinition, searchHandle, pageNo);

如文件所述

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

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

synchronized (queryManager) {
    queryManager.setPageLength(messagesOnPage);
    queryManager.search(queryDefinition, searchHandle, pageNo);
}
问题:是否可以以其他方式指定页面长度(例如,在QueryDefinition中设置)

我使用的是Marklogic 7.0,客户端api java 2.0.5

谢谢,
Hlib

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

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

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

希望有帮助