我正在使用Alfresco 5.0.d
我在搜索json结果(带有Firebug控制台面板)中看到,除了结果项外,还返回了两个其他属性:numberFound
和totalRecords
。似乎Alfresco搜索引擎将numberFound
视为找到的总商品。因此它向用户显示“已创建numberFound结果”。
问题是numberFound
不等于totalRecords
。
[我看到totalRecords
是正确的搜索结果数(实际上,搜索总是返回totalRecords
个项目数)。
所以我决定在执行搜索(alfresco-remote-api-5.0.d.jar\alfresco\templates\webscripts\org\alfresco\slingshot\search\search.lib.js
)的网页脚本中看到。我们可以轻松地看到numberFound
属性来自此语句
var rs = search.queryResultSet(queryDef);
var numberFound = rs.meta.numberFound ;
关于totalRecords
属性,它来自相同的语句,但有一点不同:
var totalRecords = rs.nodes.length
这是真正找到的项目数的正确值。
那么这是Alfresco的API错误吗?如果不是,那么错误是否可能来自我的查询参数?有人可以解释一下numberFound
属性是什么意思吗?
谢谢。
下面是执行search.queryResultSet(queryDef)
代码时被调用的Java文件的URL。
您可以在java文件中引用以下方法。它正在添加所有内容。
public Scriptable queryResultSet() //This is java method which is getting called.
下面是为获得结果而编写的代码。
meta:
{
numberFound: long, // total number found in index, or -1 if not known or not supported by this resultset
facets:
{ // facets are returned for each field as requested in the SearchParameters fieldfacets
field:
{ // each field contains a map of facet to value
facet: value,
},
}
}