Alfresco webscript (js) 和分页
Alfresco webscript (js) and pagination
我有一个关于在 Alfresco 中使用分页的好方法的问题。
我知道文档 (https://wiki.alfresco.com/wiki/4.0_JavaScript_API#Search_API)
我成功地使用了查询部分。
我的意思是我使用参数 maxItems 和 skipCount 并且它们按照我想要的方式工作。
这是我正在执行的查询示例:
var paging =
{
maxItems: 100,
skipCount: 0
};
var def =
{
query: "cm:name:test*"
page: paging
};
var results = search.query(def);
问题是,如果我得到我想要的结果数(例如 100),我不知道如何得到我的查询的 maxResults(我表示 Alfresco 可以通过此查询给我的结果总量)。
我需要这个:
- 知道是否有更多结果
- 知道有多少页的结果是持久的
我正在使用解决方法来满足第一个需要:我正在查询 (maxItems+1),并且仅显示 maxItems。如果我有 maxItems+1,我知道会有更多结果。但这并没有给我结果的总量。
你有什么想法吗?
您只需调用
即可知道您的查询找到了多少个对象
results.length
注意通常查询配置的最大结果集为 1000 个条目以节省资源。
您可以通过编辑 <alfresco>/tomcat/webapps/alfresco/WEB_INF/classes/alfresco/repository.properties
文件来更改此值。
因此,作为您的解决方案的替代方案,您可以启动没有约束的查询并获取实际值或配置的最大结果。
然后,您可以使用此值来根据您根据页面结果数进行的计算来设计可用页面数。
然后动态地将当前页面的编号传递给查询定义的构建器,结果变量将包含相应的数据块。
在此 SO post 您可以找到有关分页的更多信息。
使用 javascript 搜索对象,您无法知道是否还有更多项目。此 javascript 对象由 class org.alfresco.repo.jscript.Search.java. As you can see the query method only returns the query results without any extra information. Compare it with org.alfresco.repo.links.LinkServiceImpl 支持,它为您提供包装在 PagingResults 中的结果。
因此,由于 javacript 搜索对象不提供 hasMoreItems 信息,您需要执行一些解决方法,例如首先无限制地查询以了解总数,然后应用分页随心所欲。
我有一个关于在 Alfresco 中使用分页的好方法的问题。 我知道文档 (https://wiki.alfresco.com/wiki/4.0_JavaScript_API#Search_API) 我成功地使用了查询部分。 我的意思是我使用参数 maxItems 和 skipCount 并且它们按照我想要的方式工作。 这是我正在执行的查询示例:
var paging =
{
maxItems: 100,
skipCount: 0
};
var def =
{
query: "cm:name:test*"
page: paging
};
var results = search.query(def);
问题是,如果我得到我想要的结果数(例如 100),我不知道如何得到我的查询的 maxResults(我表示 Alfresco 可以通过此查询给我的结果总量)。 我需要这个:
- 知道是否有更多结果
- 知道有多少页的结果是持久的
我正在使用解决方法来满足第一个需要:我正在查询 (maxItems+1),并且仅显示 maxItems。如果我有 maxItems+1,我知道会有更多结果。但这并没有给我结果的总量。
你有什么想法吗?
您只需调用
即可知道您的查询找到了多少个对象results.length
注意通常查询配置的最大结果集为 1000 个条目以节省资源。
您可以通过编辑 <alfresco>/tomcat/webapps/alfresco/WEB_INF/classes/alfresco/repository.properties
文件来更改此值。
因此,作为您的解决方案的替代方案,您可以启动没有约束的查询并获取实际值或配置的最大结果。 然后,您可以使用此值来根据您根据页面结果数进行的计算来设计可用页面数。 然后动态地将当前页面的编号传递给查询定义的构建器,结果变量将包含相应的数据块。
在此 SO post 您可以找到有关分页的更多信息。
使用 javascript 搜索对象,您无法知道是否还有更多项目。此 javascript 对象由 class org.alfresco.repo.jscript.Search.java. As you can see the query method only returns the query results without any extra information. Compare it with org.alfresco.repo.links.LinkServiceImpl 支持,它为您提供包装在 PagingResults 中的结果。
因此,由于 javacript 搜索对象不提供 hasMoreItems 信息,您需要执行一些解决方法,例如首先无限制地查询以了解总数,然后应用分页随心所欲。