首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alfresco:如何搜索链接(应用程序类型的节点:filelink或cm:link)?

Alfresco:如何搜索链接(应用程序类型的节点:filelink或cm:link)?
EN

Stack Overflow用户
提问于 2014-01-09 09:43:03
回答 1查看 1.1K关注 0票数 1

我在ALFERCO4.0.2上,希望能够在上搜索 cm:content以及cm:link或app:filelink类型的节点。

当我直接查看Solr索引时,我看到所有类型都在那里被索引。但是,当我在Alfresco共享中搜索时,链接( cm:link或app:filelink类型的节点)不会被返回,即使搜索项在它们的cm:name属性中,与它的cm:content等效相同。我在节点浏览器中检查了这个。

cm:content和cm:link都有cm:cmobject作为父元素,cm:name属性设置为索引,这在Solr中有效。

因此,在Solr和返回给客户端的响应之间的某个位置,我想Al新鲜to正在进行一些过滤和排除链接。我试着找出相关的代码,但还没有成功。

我查看了(/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/slingshot/search/search.lib.js) search.lib.js,发现了一个我认为可能相关的地方,修改了它(请参阅下面的注释行)并重新加载web脚本,但它仍然没有达到我想要达到的效果。不过,只显示cm:content和cm:文件夹类型。

代码语言:javascript
复制
  // 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控制台按名称进行搜索时,所有类型都包含在搜索结果中(在我的例子中,有三个结果)。这也是我想通过经常分享的网站搜索的结果。突出显示的结果是没有出现在常规Al新鲜is共享搜索结果中的节点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-09 10:40:13

我找到了相关的代码部分:

它确实在search.lib.js,中,但是在处理链的另一种getDocumentItem方法中,结果是由

代码语言:javascript
复制
  if (node.isContainer || node.isDocument)

我调整了这部分,现在起作用了。当然,下面这个js内核中的黑客只是为了测试,这个函数应该在内核之外被覆盖。

代码语言:javascript
复制
/**
 * Returns an item of the document library component.
 */
function getDocumentItem(siteId, containerId, pathParts, node)
{

   // PENDING: how to handle comments? the document should
   //          be returned instead

   // check whether we already processed this document
   if (checkProcessedCache("" + node.nodeRef.toString()))
   {
      return null;
   }

   // check whether this is a valid folder or a file
   var item = t = null;
   if (node.qnamePath.indexOf(COMMENT_QNAMEPATH) == -1 &&
       !(node.qnamePath.match(DISCUSSION_QNAMEPATH+"$") == DISCUSSION_QNAMEPATH))
   {
      if (true || node.isContainer || node.isDocument)
      {
         item =
         {
            site: getSiteData(siteId),
            container: containerId,
            nodeRef: node.nodeRef.toString(),
            tags: ((t = node.tags) !== null) ? t : [],
            name: node.name,
            displayName: node.name,
            title: node.properties["cm:title"],
            description: node.properties["cm:description"],
            modifiedOn: node.properties["cm:modified"],
            modifiedByUser: node.properties["cm:modifier"],
            createdOn: node.properties["cm:created"],
            createdByUser: node.properties["cm:creator"],
            path: pathParts.join("/")
         };
         item.modifiedBy = getPersonDisplayName(item.modifiedByUser);
         item.createdBy = getPersonDisplayName(item.createdByUser);
      }
      if (node.isContainer)
      {
         item.type = "folder";
         item.size = -1;
      }
      else if (node.isDocument)
      {
         item.type = "document";
         item.size = node.size;
      } else {
         // added MLN
         item.type = "document";
         item.size = 1;
      }
   }

   return item;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21016521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档