поисковый запрос для поиска страниц, в которые встроены документы через StreamField?
Рассмотрим эту модель:
class MyPage(BasePage):
body = StreamField(StoryBlock())
search_fields = BasePage.search_fields + [
index.SearchField("body"),
]
У меня есть индексные документы Elasticsearch через wagtail_textract .
Что было бы хорошим способом найти страницы, содержащие документ, соответствующий поисковому запросу, в теле?
На самом деле я представляю себе два пути:
- чтобы ElasticSearch возвращал ссылки на страницу для обращений к документу
- расширить MyPage, чтобы включить ключевые слова для поиска встроенных документов
Первый имеет следующие преимущества:
- ключевые слова для поиска сохраняются только один раз для каждого документа
- вам не нужно обновлять страницу (страницы), если документ изменяется
У второго есть то преимущество, что поддержка со стороны поискового сервера не требуется. Обратной стороной является то, что для поиска встроенных документов нужен API. Потому что при изменении документа нужно обновлять все страницы.
===
Какой путь вы порекомендуете для поиска всех страниц, в которые встроен документ, с помощью StreamField StoryBlock?
Возможно, это сработает, но у меня что-то не так. Сейчас я использую Wagtail v2.6.1..