Как искать имена объектов ZCatalog - PullRequest
3 голосов
/ 02 августа 2011

Я хочу найти имя объекта.Если у меня есть структура1003 *

Но я не могу найти его с помощью TextIndexNG2 или PathIndex.

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

В настоящее время это не поддерживается "из коробки". Идентификаторы объекта (getId) индексируются только как значения полей и, следовательно, могут рассматриваться только как целые строки.

Вам потребуется добавить отдельный каталог в каталог для поддержки вашего варианта использования. Вы можете добавить новый индекс TextIndexNG2 с новым индексированием имен только методом getId. В ZMI найдите portal_catalog, затем его вкладку «Индексы», затем справа вы найдете раскрывающееся меню для добавления нового индекса. Выберите памятное имя (например, «fullTextId») и используйте getId в качестве индексированного атрибута.

Вам нужно будет выполнить переиндексацию, но только для этого индекса. После добавления выберите его на вкладке «Индексы» (установите флажок) и выберите «Переиндексировать» в нижней части этой страницы. Теперь вы можете использовать этот индекс в своих пользовательских поисках с поиском по шаблону.

3 голосов
/ 02 августа 2011
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)
...