Поиск с Algolia
Algolia — облачная система поиска для быстрого и релевантного поиска по документации Diplodoc. Подходит для больших объемов данных, обеспечивает мгновенную выдачу результатов и легко интегрируется во фронтенд документации.
Исходный код и дополнительные инструкции расширения Algolia:
https://github.com/diplodoc-platform/algolia-extension
Для регистрации аккаунта Algolia может понадобиться VPN.
Быстрый старт
-
Зарегистрируйтесь в Algolia
Перейдите на algolia.com и создайте аккаунт. После этого получите App ID, Write API Key и Search API Key для вашего приложения.
(Подробнее см. раздел “Регистрация и настройки Algolia”) -
Установите Diplodoc CLI и расширение Algolia (глобально)
npm install -g @diplodoc/cli npm install -g @diplodoc/algolia
(Подробнее о вариантах установки — в разделе “Установка”)
-
Сконфигурируйте поиск в
.yfm
В корневом.yfm
пропишите:search: provider: algolia appId: <ваш app id> searchKey: <ваш search key> index: true
(Пример с расширенными настройками — см. “Пример расширенной настройки”)
-
Передайте ключи и запустите сборку
Для безопасной сборки передавайте Write API Key через флаг CLI:yfm -i ./docs -o ./docs-out --extensions "$(npm root -g)/@diplodoc/algolia" --api-key "your-write-key"
Регистрация и настройки Algolia
- Зарегистрируйтесь на algolia.com (может потребоваться VPN).
- В панели Algolia создайте приложение (Application) и получите:
- App ID ― идентификатор приложения
- Write API Key ― секретный ключ для индексации данных
- Search API Key ― ключ для поиска на клиенте
- Имя индекса (
indexName
) можно не задавать, по умолчанию"docs"
.
Установка
Существует два варианта установки расширения для поиска Algolia:
- Глобальная установка — подходит для большинства типовых сценариев, если вы просто хотите собрать документацию с поддержкой облачного поиска.
- Локальная установка в репозитории — рекомендуется, если вы используете собственные плагины, дорабатываете cli или работаете в команде с общим package.json.
Глобальная установка:
npm install -g @diplodoc/cli
npm install -g @diplodoc/algolia
Запуск сборки с расширением:
yfm -i ./docs -o ./docs-out --extensions "$(npm root -g)/@diplodoc/algolia" --api-key "your-write-key"
Локальная установка в проекте @diplodoc/cli:
npm install @diplodoc/algolia
Запуск сборки с расширением:
npm start -- -i ./docs -o ./docs-out --extensions @diplodoc/algolia --api-key "your-write-key"
Источники для передачи параметров
Параметры расширения можно задавать через CLI, переменные окружения и файл .yfm
:
Параметр | CLI-флаг | Переменная среды | .yfm | Назначение |
---|---|---|---|---|
provider | --search-provider | ALGOLIA_PROVIDER | search.provider | Провайдер поиска (algolia ) |
appId | --app-id | ALGOLIA_APP_ID | search.appId | Algolia App ID |
apiKey | --api-key | ALGOLIA_API_KEY | search.apiKey (см. выше) | Секретный ключ для индексации |
indexName | --index-name | ALGOLIA_INDEX_NAME | search.indexName | Имя индекса (по умолчанию "docs") |
index | --index | - | search.index | Загружать ли индекс в Algolia |
searchKey | --search-key | ALGOLIA_SEARCH_KEY | search.searchKey | Ключ для поиска на клиенте |
api | --search-api | ALGOLIA_API_PATH | search.api | Путь к JS-API поиска |
indexSettings | - | - | search.indexSettings | Настройки индекса Algolia |
querySettings | - | - | search.querySettings | Настройки поисковых запросов |
Пояснение по видам ключей
-
apiKey (Write API Key):
Секретный ключ, используется для загрузки и обновления данных в Algolia во время сборки или индексации. Храните его секретно, не публикуйте в репозитории или выложенных файлах конфигурации: используйте переменные среды либо флаги CLI. -
searchKey (Search API Key):
Ключ для фронтенд-поиска, попадает в финальную сборку документации. Без него поиск на клиенте работать не будет. Этот ключ безопасен для публикации в файле.yfm
.
Пример расширенной настройки
search:
provider: algolia
appId: <ваш app id>
indexName: docs
index: true
searchKey: <ваш search key>
indexSettings:
searchableAttributes:
- title
- content
- headings
- keywords
attributesToHighlight:
- title
- content
querySettings:
hitsPerPage: 10
attributesToRetrieve:
- title
- content
- url
- section
Сборка и индексация
- По умолчанию расширение создает локальные индексы в каталоге
_search
вашей выходной папки. Эти индексы доступны для локального поиска и не загружаются в облако. - Если в конфиге задан параметр
index: true
(или используется CLI-флаг--index
), то при каждой сборке документации индекс будет не только формироваться локально, но и автоматически загружаться (обновляться) в Algolia после сборки. - Если вы хотите разделить эти процессы — например, сначала собрать документацию, проверить результат, а индекс загружать только после финальной проверки или отдельно по расписанию — настройте сборку без параметра
index
(или явно сindex: false
). Тогда при сборке создаются только локальные индексы. Позднее для загрузки или обновления индекса в облако используйте отдельную команду:
yfm index -i ./docs-out --extensions "$(npm root -g)/@diplodoc/algolia" --api-key "your-write-key"
Частые вопросы и проблемы
- Поиск не работает — проверьте, что
searchKey
корректно передан в конфиге. - Ошибка при индексации — проверьте правильность и способ передачи
write apiKey
. - Данные не появляются в Algolia — убедитесь, что выставлен параметр
index: true
в конфиге или используется ключ--index
при запуске.