Перейти к основному контенту

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

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

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

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

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

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

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

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

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

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

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

  • Обычный поиск: <термин_1> <термин_2>
    Например: лондон встреча
    Обычные поисковые запросы по словам включают название и описание или тело вашего контента. При вводе нескольких терминов достаточно совпадения одного термина, но контент, содержащий оба термина, будет выше в результатах.

  • Точный поиск: "<термин>"
    Например: "лондонская встреча"
    Точные совпадения требуют наличия всей строки в кавычках в точности в таком формате в вашем контенте. Используйте это, если ищете точную фразу или термины с пробелами.

  • Поиск по тегам: [<название>], [<оператор><значение>], [<название><оператор><значение>]
    Например: [местоположение], [=лондон], [местоположение=лондон], [участники>5]
    Поиск по тегам позволяет находить страницы с определенными применёнными тегами. Можно искать по названию тега, значению тега или обоим параметрам. При поиске по значению тега необходимо использовать оператор, определяющий тип соответствия. Можно использовать операторы =, !=, <, >, <=, >= или like. При использовании оператора like можно использовать символы % для обозначения шаблонов поиска.

  • Фильтры поиска: {<название_фильтра>}, {<название_фильтра>:<значение_фильтра>}
    См. ниже таблицу фильтров, поддерживаемых в BookStack, и способы их использования.

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

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

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

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

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

  • Фильтры даты:

    • {updated_after:<дата>}
      Например: {updated_after:2016-12-30}
      Добавляет условие, что контент должен был быть последним обновлен после указанной даты. Дату следует указывать в формате YYYY-MM-DD.

    • {updated_before:<дата>}
      Например: {updated_before:2016-12-30}
      Добавляет условие, что контент должен был быть последним обновлён до указанной даты. Формат такой же: YYYY-MM-DD.

    • {created_after:<дата>}
      Например: {created_after:2016-12-30}
      Условие, что контент должен был быть создан после указанной даты. Формат: YYYY-MM-DD.

    • {created_before:<дата>}
      Например: {created_before:2016-12-30}
      Условие, что контент должен был быть создан до указанной даты. Формат: YYYY-MM-DD.

  • Фильтры пользователей:

    • {updated_by:<псевдоним_пользователя|me>}
      Например: {updated_by:барри}, {updated_by:me}
      Условие, что контент должен был быть последний раз обновлен указанным пользователем. Если указать me, будут найдены записи, обновленные текущим пользователем.

    • {created_by:<псевдоним_пользователя|me>}
      Например: {created_by:барри}, {created_by:me}
      Условие, что контент должен был быть создан указанным пользователем. Аналогично me — для текущего пользователя.

    • {owned_by:<псевдоним_пользователя|me>}
      Например: {owned_by:барри}, {owned_by:me}
      Условие, что контент должен активно принадлежать указанному пользователю. Опять же, me означает текущего пользователя.

  • Фильтры контента:

    • {in_name:<поиск>}
      Например: {in_name:Лондонские встречи}, {in_name:Встречи}
      Требует, чтобы искомый термин находился в названии контента, а не в теле или описании.

    • {in_body:<поиск>}
      Например: {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:<типы_контента>}
      Например: {type:страница|глава|книга}, {type:страница|глава}, {type:книга}
      Ограничивает типы контента, которые будут включены в результаты поиска. Использование зависит от типа поиска. Например, при поиске в главе результат ограничен страницами, и этот фильтр не влияет.

    • {sort_by:<метод_сортировки>}
      Например: {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, позволяющей эффективно находить нужную информацию с учетом различных условий и ограничений.