我想搜索對象名稱。 如果我有這樣的結構: /de/myspace/media/justAnotherPdf.pdf如何搜索ZCatalog對象名稱
然後我想搜索的名稱「justAnotherPdf」找到它或類似「justAnot」 我已經索引的PDF文件。
但我不能用TextIndexNG2或PathIndex搜索它。
我想搜索對象名稱。 如果我有這樣的結構: /de/myspace/media/justAnotherPdf.pdf如何搜索ZCatalog對象名稱
然後我想搜索的名稱「justAnotherPdf」找到它或類似「justAnot」 我已經索引的PDF文件。
但我不能用TextIndexNG2或PathIndex搜索它。
目前,這是不支持外的開箱。對象標識符(getId
)僅作爲字段值編入索引,因此只能作爲整個字符串查找。
您需要將單獨的索引添加到目錄以支持您的用例。您可以添加一個新的TextIndexNG2索引,並使用一個新名稱索引getId方法。在ZMI中,找到portal_catalog,然後是'索引'選項卡,然後在右側找到用於添加新索引的下拉菜單。選擇一個令人難忘的名字(例如'fullTextId')並使用getId
作爲索引屬性。
你需要做一個reindex,但僅限於該索引。添加完成後,在「索引」選項卡中選中它(勾選複選框),然後在該頁面底部選擇「重建索引」。現在,您可以使用通配符搜索在您的自定義搜索中使用此索引。
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)
好吧,我明白了。但是當用戶給腳本搜索時,我必須進入每個媒體目錄;)但是我有大約400多個文件在不同的文件夾中...... – Hackbard
這只是提取文件名的方法,沒有擴展名,它可能是封裝在一個函數中,你可以在'os.walk'循環中使用它... = P – BrainStorm