簡體   English   中英

從所有用戶搜索中排除某個路徑

[英]exclude a certain path from all user searches

不幸的是,我們的存儲庫中到處都有一個名為“_archive”的特殊文件夾。 這個文件夾有它的目的。 但是:在搜索內容/文檔時,我們希望將其排除在“_archive”之下。

所以,我想要的是從所有用戶搜索中排除路徑及其成員。 使用fts語法很簡單:

your_query AND -PATH:"//cm:_archive//*"

測試: https//www.docdroid.net/RmKj9gB/search-test.pdf.html獲取pdf,將其放入您的回購兩次:

  • /some_random_path/search-test.pdf
  • /some_random_path/_archive/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>

但它不能按預期工作! 只要我在搜索字段中使用“text:”或“name:”,就會忽略排除。

我還有什么其他選擇? 基本上只是想在使用默認查詢模板后將排除添加到基本查詢。

版本是Alfresco Community 5.0.d

謝謝!

我想你錯了什么查詢模板的意思。 看看Wiki

所以你基本上做的是以編程方式說我有一個關鍵字,我想將關鍵字與以下元數據字段相匹配。

默認它將匹配cm:name cm:title cm:description等。這可以更改為自定義字段,或者在其他情況下更改為ALL

因此,添加一個額外的AND或此處的任何不起作用,導致這不是將要構建的實際查詢。 我可以繼續了解有關查詢模板的更多信息,但這對您沒有任何幫助。

在您的情況下,您需要修改Alfresco的search.get webscript和search.lib.js中的函數getSearchResults(params)的方法(獲取導入)。

在方法結束時的某個地方,它將執行以下操作:

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\\-*';

只需添加您的查詢路徑,即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM