【发布时间】:2014-01-09 09:43:03
【问题描述】:
我在 Alfresco 4.0.2 上,希望能够搜索节点类型 cm:content 以及 作为 cm:link 或 app:filelink。
当我直接查看 Solr 索引时,我发现所有类型都在此处建立了索引。但是,当我在 Alfresco Share 中搜索时,不会返回链接(cm:link 或 app:filelink 类型的节点),即使搜索词在其 cm:name 属性中,与它的 cm:content 等效项相同。我在节点浏览器中检查了这一点。
cm:content 和 cm:link 都将 cm:cmobject 作为其父级,并且 cm:name 属性设置为索引,这在 Solr 中有效。
因此,我认为,在 Solr 和返回给客户端的响应之间的某个地方,Alfresco 正在执行一些过滤和排除链接。我试图找到相关的代码,但还没有成功。
我查看了 search.lib.js (/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/slingshot/search/search.lib.js ) 并找到了一个我认为可能相关的位置,对其进行了更改(参见下面的注释行)并重新加载了 Web 脚本,但它仍然没有我想要达到的结果。仍然只显示 cm:content 和 cm:folder 类型。
// ensure a TYPE is specified - if no add one to remove system objects from result sets
if (ftsQuery.indexOf("TYPE:\"") === -1 && ftsQuery.indexOf("TYPE:'") === -1)
{
//ftsQuery += ' AND (+TYPE:"cm:content" +TYPE:"cm:folder")';
ftsQuery += ' AND (+TYPE:"cm:content" +TYPE:"cm:folder" +TYPE:"cm:link" +TYPE:"app:filelink")';
}
Alfresco 在哪里过滤掉某些搜索结果,例如特定类型?
更新:
当我通过 Javascript 控制台按名称搜索时,所有类型都包含在搜索结果中(在我的例子中是三个结果)。这也是我希望通过常规 Share 站点搜索实现的结果。 突出显示的结果是没有出现在常规 Alfresco Share 搜索结果中的节点。
【问题讨论】: