2011-08-02 50 views
3

我想搜索對象名稱。 如果我有這樣的結構: /de/myspace/media/justAnotherPdf.pdf如何搜索ZCatalog對象名稱

然後我想搜索的名稱「justAnotherPdf」找到它或類似「justAnot」 我已經索引的PDF文件。

但我不能用TextIndexNG2或PathIndex搜索它。

回答

3

目前,這是不支持外的開箱。對象標識符(getId)僅作爲字段值編入索引,因此只能作爲整個字符串查找。

您需要將單獨的索引添加到目錄以支持您的用例。您可以添加一個新的TextIndexNG2索引,並使用一個新名稱索引getId方法。在ZMI中,找到portal_catalog,然後是'索引'選項卡,然後在右側找到用於添加新索引的下拉菜單。選擇一個令人難忘的名字(例如'fullTextId')並使用getId作爲索引屬性。

你需要做一個reindex,但僅限於該索引。添加完成後,在「索引」選項卡中選中它(勾選複選框),然後在該頁面底部選擇「重建索引」。現在,您可以使用通配符搜索在您的自定義搜索中使用此索引。

3
import os.path 
name = os.path.splitext(os.path.split(url)[1])[0] 

解釋代碼:

from os.path import split, splitext 
url = '/de/myspace/media/justAnotherPdf.pdf' 
path, name_with_ext = split(url) 
name_without_ext, ext = splitext(name_with_ext) 
+0

好吧,我明白了。但是當用戶給腳本搜索時,我必須進入每個媒體目錄;)但是我有大約400多個文件在不同的文件夾中...... – Hackbard

+0

這只是提取文件名的方法,沒有擴展名,它可能是封裝在一個函數中,你可以在'os.walk'循環中使用它... = P – BrainStorm