使用 alfresco search.luceneSearch 或 search.lib.js 使用特定类别名称读取所有文档

Posted

技术标签:

【中文标题】使用 alfresco search.luceneSearch 或 search.lib.js 使用特定类别名称读取所有文档【英文标题】:read all document by using particular category name using alfresco search.luceneSearch or search.lib.js 【发布时间】:2014-07-24 13:41:58 【问题描述】:

类别名称 | 地理 (8) 研究 Db (18)

我正在露天实现我自己的高级搜索。我需要阅读与特定类别相关的所有文件。

示例:

如果 geograpy 下有 20 个文件,lucene 查询应该读取搜索关键字“banana”下的特定文档。

进一步说明—— 我正在使用 search.lib.js 进行搜索。我想分析结果以找出文档属于哪个类别。例如,我想知道有多少文档属于 Languages 下的类别和子类别。我尝试了分类 API,但没有得到我想要的结果。任何想法如何通过结果来获取每个文档的类别名称?

有没有像node.properties["cm:creator"]这样的简单方法?

谢谢

贾纳卡

【问题讨论】:

不幸的是,您的问题没有多大意义。您能否澄清您的数据以及在给定特定输入的情况下您期望看到的内容?另外,你到底想从我们这里得到什么?网页脚本的 Java 代码?一个 lucene 查询? 【参考方案1】:

我认为你应该详细说明你的问题:

    您使用的是 cm:content 还是自定义内容? 您要在文件内容中搜索关键字吗?还是要在特定元数据中搜索关键字? 您要创建 webscript(java 还是 javascript)?

需要考虑的一点:

如果您在 lucene 查询中使用 +PATH:"cm:generalclassifiable/...." 进行分类,性能会很慢(根据我的经验)

【讨论】:

感谢 Yon santos 回复我的问题,我正在使用 search.lib.js 进行搜索。我想分析结果以找出文档属于哪个类别。例如,我想知道有多少文档属于 Languages 下的类别和子类别。我尝试了分类 API,但没有得到我想要的结果。任何想法如何通过结果来获取每个文档的类别名称? 有没有像node.properties["cm:creator"]这样的简单方法?【参考方案2】:

例如,您可以使用下一个查询来查找 /cm:Languages 以下任意深度的所有节点:

var results = search.luceneSearch("+PATH:\"cm:generalclassifiable/cm:Languages//*\");

看看这个网址:https://wiki.alfresco.com/wiki/Search#Path_Queries

一旦你拥有了所有的元素,你就可以循环所有,并得到下面的哪个类别。当然,您需要为每个类别/子类别创建一些计数器:

for(i = 0; i < results.length; i++)
    var node = results[i];
    var categoryNodeRef = node.properties["cm:categories"];
    var categoryDesc = categoryNodeRef.properties["cm:description"];
    var categoryName = categoryNodeRef.properties["cm:name"];

这并不完全是解决方案,但可以作为一个有用的想法开始。

对不起,如果不是您要的,我刚放假回来。

【讨论】:

以上是关于使用 alfresco search.luceneSearch 或 search.lib.js 使用特定类别名称读取所有文档的主要内容,如果未能解决你的问题,请参考以下文章

将“流行”因素与 zend-search lucene 正确集成的最佳方法是啥?

使用 LDAP 的 Alfresco,在 Alfresco 接口中更改用户的密码

从 Alfresco Enterprise 降级到 Alfresco Community

如何解决 alfresco sdk 中的 alfresco webscripts 中的 CORS 错误?

无法在 Alfresco 中禁用创建站点权限

Alfresco 拒绝使用初始登录名和密码进行连接