Поиск изображений трясогузки - PullRequest
0 голосов
/ 24 сентября 2018

Я реализую насыщенное изображение веб-приложение с трясогузкой и эластичным поиском.Для поиска изображений я хочу использовать эластичный поиск и встроенные возможности трясогузки для индексации и поиска изображений.

Изображения в трясогузке помечены, и я хочу использовать эти теги для поиска изображений.Индексация изображений уже работала из коробки, и теперь я борюсь с их поиском.Проблема в том, что я хочу искать текст в тегах.Wagtail предоставляет функцию search () в диспетчере объектов, которую можно использовать для поиска:

images = Image.objects.search("sometag")

Чтобы ограничить поиск по определенному полю, можно сделать следующее:

images = Image.objects.search("sometag", fields=['title'])

Теперь ограничимся тегом, который определен как связанное поле для поиска:

search_fields = CollectionMember.search_fields + [
    index.SearchField('title', partial_match=True, boost=10),
    index.AutocompleteField('title'),
    index.FilterField('title'),
    index.RelatedFields('tags', [
        index.SearchField('name', partial_match=True, boost=10),
        index.AutocompleteField('name'),
    ]),
    index.FilterField('uploaded_by_user'),
]

Я бы ожидал, что функция search () будет работать с тегом 'tag' или '.параметр name:

images = Image.objects.search("sometag", fields=['tags.name'])
images = Image.objects.search("sometag", fields=['tags'])

Но я получаю только следующую ошибку:

wagtail.search.backends.base.SearchFieldError: Cannot search with field "tags.name". Please add index.SearchField('tags.name') to Image.search_fields.

или

wagtail.search.backends.base.SearchFieldError: Cannot search with field "tags". Please add index.SearchField('tags') to Image.search_fields.

Как использовать функциональность fields=... сRelatedFields определение в Images?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...