Java 为每个搜索查询设置不同的页面长度
如文件所述 文档管理器在初始配置后是线程安全的;无论有多少线程,每个文档类型都只需要一个文档管理器 我想为每个查询指定不同的页面长度。但我发现的唯一方法是调用QueryManager的相应方法。所以我需要同步我自己:Java 为每个搜索查询设置不同的页面长度,java,multithreading,marklogic,nosql,Java,Multithreading,Marklogic,Nosql,如文件所述 文档管理器在初始配置后是线程安全的;无论有多少线程,每个文档类型都只需要一个文档管理器 我想为每个查询指定不同的页面长度。但我发现的唯一方法是调用QueryManager的相应方法。所以我需要同步我自己: synchronized (queryManager) { queryManager.setPageLength(messagesOnPage); queryManager.search(queryDefinition, searchHandle, pageNo);
synchronized (queryManager) {
queryManager.setPageLength(messagesOnPage);
queryManager.search(queryDefinition, searchHandle, pageNo);
}
问题:是否可以以其他方式指定页面长度(例如,在QueryDefinition中设置)
我使用的是Marklogic 7.0,客户端api java 2.0.5
谢谢,
Hlib该文档并没有试图警告管理器跨线程共享内部状态 相反,它试图澄清,只要管理器的配置不变,您可以选择跨线程共享单个管理器对象 如果只在一个线程中使用查询管理器对象,则其他线程看不到该对象,因此不需要将更改同步到查询管理器。如果有许多线程使用QueryManager,那么应该为每个线程创建一个新的QueryManager,因为您正在更改页面长度 希望有帮助