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