поисковый запрос для поиска страниц, которые встраивают документы через StreamField? - PullRequest
0 голосов
/ 02 марта 2020

Рассмотрим эту модель:

class MyPage(BasePage):

    body = StreamField(StoryBlock())

    search_fields = BasePage.search_fields + [
        index.SearchField("body"),
    ]

У меня есть индексные документы Elasticsearch через wagtail_textract.

Какой будет хороший способ найти страницы, которые встраивают документ, который соответствует поисковому запросу , в теле?

На самом деле я представляю два пути:

  1. иметь ElasticSearch, возвращающие ссылки на страницу для попаданий в документ
  2. , расширить MyPage, чтобы включить ключевые слова для поиска встроенных документов

First имеет следующие преимущества:

  1. ключевые слова для поиска сохраняются только один раз для каждого документа
  2. , вам не нужно обновлять страницы, если документ изменяется

Преимущество второго - отсутствие поддержки со стороны поискового бэкэнда. Оборотная сторона в том, что для поиска встроенных документов нужен API. Поскольку при изменении документа нужно обновлять все страницы.

===

По какому маршруту вы бы порекомендовали найти все страницы, в которые встроен документ, через StreamField StoryBlock?

Была бы возможность, что это должно работать, но у меня что-то не так. Я использую Wagtail v2.6.1 в настоящее время. .

...