-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
90 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
--- | ||
noindex: true | ||
--- | ||
|
||
# История изменений | ||
|
||
## Декабрь 2022 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
--- | ||
keywords: | ||
- search | ||
- lunr | ||
- solr | ||
- поиск | ||
--- | ||
|
||
# Интеграция с поисковыми системами | ||
|
||
Чтобы включить в документации поддержку поисковой системы, нужно указать в настройках секцию `search`. | ||
После этого в интерфейсе в правом верхнем углу должен появиться элемент поиска. | ||
|
||
По умолчанию поддерживается локальный поиск, реализованный с помощью [lunrjs](https://lunrjs.com/) | ||
|
||
```yaml | ||
search: | ||
provider: local | ||
``` | ||
## Локальный поиск | ||
### Конфигурация | ||
```yaml | ||
search: | ||
provider: local | ||
toleranse: 2 | ||
confidense: phrased | ||
``` | ||
#### confidense | ||
Переключает режим дополнительного ранжирования результатов поиска. | ||
`confidense: phrased` - значение по умолчанию. Дополнительно ранжирует результаты по длине найденной фразы. | ||
|
||
`confidense: sparsed` - Использует обычное ранжирование из LunrJS. Т.е. просто считает количество найденных в документе слов, не учитывая расстояние между ними. | ||
|
||
#### tolerance | ||
|
||
Переключает диапазон поискового запроса. | ||
|
||
`tolerance: 0` - Ищет точное совпадение слов. | ||
|
||
`tolerance: 1` - Если результатов `tolerance=0` недостаточно, ищет “хвостики”. т.е `word*`. | ||
|
||
`tolerance: 2` - (по умолчанию) Если результатов `tolerance=1` недостаточно, ищет “шапочкки” т.е `*word*`. | ||
|
||
### Архитектура | ||
|
||
LunrJS строит поисковый индекс при сборке документации и ищет по нему синхронно. | ||
Это накладывает на систему ряд ограничений: | ||
|
||
#### Объем | ||
|
||
Поисковый индекс может быть достаточно большим. В среднем он занимает в три раза больше места чем объем текстовой информации в индексируемых документах. | ||
|
||
При этом индекс заново инициализируется на каждой новой вкладке документации (в момент фокуса в элементе поиска). | ||
|
||
Это может негативно сказаться на объеме памяти, занимаемой браузером и на скорости инициализации результатов поиска. | ||
|
||
В случае если поисковый индекс превышает 100Mb, стоит подумать об интеграции с другой поисковой системой. | ||
|
||
Объем индекса можно посмотреть в директории собранной документации в разделе `_search/<lang>/index.js`. | ||
|
||
#### Синхронность | ||
|
||
Из-за того что LunrJS имеет синхронную реализацию, основная часть его логики вынесена в WebWorker. | ||
|
||
У WebWorker есть [ряд ограничений](https://stackoverflow.com/questions/21408510/chrome-cant-load-web-worker) по работе с файловой системой, если вы открываете документацию полностью локально (`file:///some-documentation`). | ||
|
||
Реализация в Diplodoc старается обойти эти ограничения, но не гарантирует, что в будущих политиках браузера все будет работать. | ||
|
||
### Проблемы | ||
|
||
О проблемах в локальном поиске стоит сообщать в [issues](https://github.com/diplodoc-platform/search-extension/issues) соответствующего проекта. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters