# Поиск контента

Возможность поиска документации критически важна для повседневной работы. Существует несколько мест в BookStack, где можно искать нужный контент. Вот перечень функций поиска в BookStack:

#### Поле поиска в шапке

Поле поиска/гиперссылка в шапке каждой страницы позволяет осуществлять поиск откуда угодно. Этот поиск является глобальным и охватывает все книги, главы и страницы в вашей системе. После выполнения поиска в этом поле вы попадете на страницу поиска, которая включает параметры и функции, помогающие построить расширенный поиск.

#### Поиск в книге или главе

При просмотре книги или главы строка поиска находится в верхней части левой боковой панели. Эти поиски охватывают все вложенные элементы.

#### Выбор перемещения и ссылки

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

### Расширенный синтаксис поиска

Все вышеперечисленные области поиска в BookStack поддерживают использование расширенного синтаксиса поиска. Простым способом увидеть этот синтаксис в действии является использование глобального поиска в BookStack и экспериментирование с фильтрами поиска, которые обновляют поисковый запрос следующим образом:

**Тип поиска | Синтаксис | Примеры | Описание**

- **Обычный поиск**: &lt;термин\_1&gt; &lt;термин\_2&gt;  
    Например: лондон встреча  
    Обычные поисковые запросы по словам включают название и описание или тело вашего контента. При вводе нескольких терминов достаточно совпадения одного термина, но контент, содержащий оба термина, будет выше в результатах.
- **Точный поиск**: "&lt;термин&gt;"  
    Например: "лондонская встреча"  
    Точные совпадения требуют наличия всей строки в кавычках в точности в таком формате в вашем контенте. Используйте это, если ищете точную фразу или термины с пробелами.
- **Поиск по тегам**: \[&lt;название&gt;\], \[&lt;оператор&gt;&lt;значение&gt;\], \[&lt;название&gt;&lt;оператор&gt;&lt;значение&gt;\]  
    Например: \[местоположение\], \[=лондон\], \[местоположение=лондон\], \[участники&gt;5\]  
    Поиск по тегам позволяет находить страницы с определенными применёнными тегами. Можно искать по названию тега, значению тега или обоим параметрам. При поиске по значению тега необходимо использовать оператор, определяющий тип соответствия. Можно использовать операторы =, !=, &lt;, &gt;, &lt;=, &gt;= или like. При использовании оператора like можно использовать символы % для обозначения шаблонов поиска.
- **Фильтры поиска**: {&lt;название\_фильтра&gt;}, {&lt;название\_фильтра&gt;:&lt;значение\_фильтра&gt;}  
    См. ниже таблицу фильтров, поддерживаемых в BookStack, и способы их использования.

### Отрицание поисковых запросов

Для точного поиска, поиска по тегам и фильтрам можно отрицать (НЕ) условие поиска, добавив перед ним дефис (-). Например, поиск с параметром -\[местоположение\] исключит из результатов поиска все записи с тегом местоположение.

### Доступные фильтры

Фильтры представляют собой расширенные возможности поиска, которые можно использовать в поисковом запросе. Ниже представлены все доступные фильтры в BookStack и их использование:

**Синтаксис | Примеры | Описание**

- **Фильтры даты**:
    
    
    - {updated\_after:&lt;дата&gt;}  
        Например: {updated\_after:2016-12-30}  
        Добавляет условие, что контент должен был быть последним обновлен после указанной даты. Дату следует указывать в формате YYYY-MM-DD.
    - {updated\_before:&lt;дата&gt;}  
        Например: {updated\_before:2016-12-30}  
        Добавляет условие, что контент должен был быть последним обновлён до указанной даты. Формат такой же: YYYY-MM-DD.
    - {created\_after:&lt;дата&gt;}  
        Например: {created\_after:2016-12-30}  
        Условие, что контент должен был быть создан после указанной даты. Формат: YYYY-MM-DD.
    - {created\_before:&lt;дата&gt;}  
        Например: {created\_before:2016-12-30}  
        Условие, что контент должен был быть создан до указанной даты. Формат: YYYY-MM-DD.
- **Фильтры пользователей**:
    
    
    - {updated\_by:&lt;псевдоним\_пользователя|me&gt;}  
        Например: {updated\_by:барри}, {updated\_by:me}  
        Условие, что контент должен был быть последний раз обновлен указанным пользователем. Если указать me, будут найдены записи, обновленные текущим пользователем.
    - {created\_by:&lt;псевдоним\_пользователя|me&gt;}  
        Например: {created\_by:барри}, {created\_by:me}  
        Условие, что контент должен был быть создан указанным пользователем. Аналогично me — для текущего пользователя.
    - {owned\_by:&lt;псевдоним\_пользователя|me&gt;}  
        Например: {owned\_by:барри}, {owned\_by:me}  
        Условие, что контент должен активно принадлежать указанному пользователю. Опять же, me означает текущего пользователя.
- **Фильтры контента**:
    
    
    - {in\_name:&lt;поиск&gt;}  
        Например: {in\_name:Лондонские встречи}, {in\_name:Встречи}  
        Требует, чтобы искомый термин находился в названии контента, а не в теле или описании.
    - {in\_body:&lt;поиск&gt;}  
        Например: {in\_body:Лондонские встречи}, {in\_body:Встречи}  
        Требует, чтобы искомый термин присутствовал в тексте контента, а не в названии.
- **Опционные фильтры**:
    
    
    - {is\_restricted}  
        Например: {is\_restricted}  
        Ограничивает результаты контентом, имеющим активные ограничения на уровне содержимого. Не возвращает элементы с наследуемыми разрешениями.
    - {is\_template}  
        Например: {is\_template}  
        Фильтрует результаты поиска страниц, помечая их как шаблон. Обычно комбинируется с фильтром {type:page}.
    - {viewed\_by\_me}  
        Например: {viewed\_by\_me}  
        Возвращает контент, просмотренный текущим пользователем хотя бы один раз.
    - {not\_viewed\_by\_me}  
        Например: {not\_viewed\_by\_me}  
        Исключает из результатов контент, ранее просмотренный текущим пользователем.
    - {type:&lt;типы\_контента&gt;}  
        Например: {type:страница|глава|книга}, {type:страница|глава}, {type:книга}  
        Ограничивает типы контента, которые будут включены в результаты поиска. Использование зависит от типа поиска. Например, при поиске в главе результат ограничен страницами, и этот фильтр не влияет.
    - {sort\_by:&lt;метод\_сортировки&gt;}  
        Например: {sort\_by:last\_commented}  
        Сортирует результаты поиска определенным порядком, отличным от порядка по соответствию запросу. Поддерживается сортировка по последнему комментарию.

### Примеры поиска

Ниже приведены примеры использования вышеуказанного синтаксиса и фильтров:

1. "мой кот" {просмотрено\_мной} {обновлено\_после:2017-01-24}
    
    
    - "мой кот" — поиск контента, содержащего точную фразу «мой кот»;
    - {просмотрено\_мной} — просмотрено текущим пользователем;
    - {обновлено\_после:2017-01-24} — последнее обновление должно быть после 24 января 2017 года.
2. учебник обсуждение -"черновик" \[встреча\] {тип:страница} {создано\_мной}
    
    
    - учебник обсуждение — поиск контента с любыми словами «учебник» или «обсуждение»;
    - -"черновик" — исключение результатов, содержащих точное слово «черновик»;
    - \[встреча\] — показывать только контент с тегом «встреча»;
    - {тип:страница} — показывать только страницы, скрывая главы и книги;
    - {создано\_мной} — созданный текущим пользователем.
3. {тип:книга|глава} {создано\_мной} {создано\_после:2016-08-12} {создано\_до:2017-02-18}
    
    
    - {тип:книга|глава} — поиск среди всех книг и глав;
    - {создано\_мной} — создано текущим пользователем;
    - {создано\_после:2016-08-12} — создание произошло после 12 августа 2016 года;
    - {создано\_до:2017-02-18} — но до 18 февраля 2017 года.

Эти примеры демонстрируют гибкость расширенной системы поиска в BookStack, позволяющей эффективно находить нужную информацию с учетом различных условий и ограничений.