Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 从所有用户搜索中排除特定路径_Search_Alfresco_Alfresco Share_Alfresco Webscripts - Fatal编程技术网

Search 从所有用户搜索中排除特定路径

Search 从所有用户搜索中排除特定路径,search,alfresco,alfresco-share,alfresco-webscripts,Search,Alfresco,Alfresco Share,Alfresco Webscripts,不幸的是,我们的存储库中到处都有一个名为“\u archive”的特殊文件夹。 这个文件夹有它的用途。但是:在搜索内容/文档时,我们希望排除它和“\u archive”下的所有内容 因此,我想从所有用户搜索中排除路径及其成员。fts的语法很简单: your_query AND -PATH:"//cm:_archive//*" 要测试: 将pdf放入您的回购协议中两次: /一些随机路径/search-test.pdf /一些随机路径/归档文件/search-test.pdf 在节点浏览器中,

不幸的是,我们的存储库中到处都有一个名为“\u archive”的特殊文件夹。 这个文件夹有它的用途。但是:在搜索内容/文档时,我们希望排除它和“\u archive”下的所有内容

因此,我想从所有用户搜索中排除路径及其成员。fts的语法很简单:

your_query AND -PATH:"//cm:_archive//*"
要测试: 将pdf放入您的回购协议中两次:

  • /一些随机路径/search-test.pdf
  • /一些随机路径/归档文件/search-test.pdf
在节点浏览器中,一切都按预期工作:

TEXT:"HODOR" AND -PATH:"//cm:_archive//*"
= 1 result

TEXT:"HODOR"
= 2 results
因此,我的想法是编辑search.get.config.xml并将排除项添加到属性列表中:

<search>
    <default-operator>AND</default-operator>
    <default-query-template>%(cm:name cm:title cm:description ia:whatEvent
        ia:descriptionEvent lnk:title lnk:description TEXT TAG) AND -PATH:"//cm:_archive//*"
    </default-query-template>
</search>

及
%(cm:名称cm:标题cm:描述ia:什么事件
ia:descriptionEvent lnk:title lnk:description文本标记)和-PATH://cm:_archive//*“
但它并没有按预期的那样工作!当我在搜索字段中使用“text:”或“name:”时,排除似乎被忽略

我还有别的选择吗?基本上,我们只想在使用默认查询模板后将排除添加到基本查询中

版本是Alfresco Community 5.0.d


谢谢

我想你弄错了查询模板的用途了。请看下面的图片

因此,您基本上是通过编程的方式说我有一个关键字,我想将这些关键字与以下元数据字段相匹配

默认情况下,它将匹配cm:name cm:title cm:description等。这可以更改为自定义字段,或者在其他情况下更改为ALL

因此,在这里添加一个额外的AND或or都不起作用,因为这不是将要构建的实际查询。我可以进一步介绍查询模板,但这对您没有任何好处

在本例中,您需要修改Alfresco的search.get webscript和search.lib.js中名为函数getSearchResults(params)的方法(其中get已导入)

在方法末尾的某个地方,它将执行以下操作:

ftsQuery = '(' + ftsQuery + ') AND -TYPE:"cm:thumbnail" AND -TYPE:"cm:failedThumbnail" AND -TYPE:"cm:rating" AND -TYPE:"st:site"' + ' AND -ASPECT:"st:siteContainer" AND -ASPECT:"sys:hidden" AND -cm:creator:system AND -QNAME:comment\\-*';

只需将您的查询路径添加到其中即可。

我使用的是5.0.d社区-我在search.get.js中没有提到的方法该方法在search.lib.js中,search.get.js进行导入。您使用的是哪个版本?你确定这对5.0.d有效吗?在5.0.d中,行看起来有点不同
ftsQuery='(“+ftsQuery+”)和-TYPE:“cm:thumbnail”和-TYPE:“cm:failedThumbnail”和-TYPE:“cm:rating”和-TYPE:“st:site”+”和-ASPECT:“st:siteContainer”和-ASPECT:“sys:hidden”和-cm:creator:system和-QNAME:comment\\\-*”
Pff@user1429166你真的要去那里吗?使用total commander或其他工具,在jar文件中查找search.lib.js。我们真的需要为你做工作吗。。。。。在本例中,该文件位于alfresco-remote-api-5.0.d.jarI中。在使用路径查询时,您是否经常遇到性能问题?你的回购协议有多大,circa?维基说搜索速度会变慢,你可能想增加缓存大小。但我还没有遇到任何问题。我在一个有5gb内容的开发环境中运行它