Spec-Zone.ru › CouchDB 3.5

/{db}/_design/{ddoc}/_search/{index}

Предупреждение

Для работы конечных точек поиска требуется запущенный плагин поиска, подключённый к каждому узлу кластера. Подробности см. в разделе Установка плагина поиска.

Добавлено в версии 3.0.

GET /{db}/_design/{ddoc}/_search/{index}

Выполняет поисковый запрос к указанному индексу в заданном проектном документе.

Параметры:
  • db – Имя базы данных

  • ddoc – Имя проектного документа

  • index – Имя поискового индекса

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

Параметры запроса:
  • bookmark (string) – Закладка, полученная в результате предыдущего поиска. Этот параметр позволяет постранично просматривать результаты. Если после закладки результатов больше нет, в ответе возвращается пустой массив rows и та же закладка, подтверждая, что список результатов закончился.

  • counts (json) – Массив имён строковых полей, для которых требуется подсчёт. Ответ содержит количество документов, соответствующих поисковому запросу, для каждого уникального значения этого поля. Для работы этого параметра необходимо включить фасетный поиск.

  • drilldown (json) – Это поле можно использовать несколько раз. Каждое использование задаёт пару из имени поля и значения. Поиск возвращает только документы, содержащие указанное значение в названном поле. От использования "fieldname:value" в параметре q этот вариант отличается только тем, что значения не анализируются. Для работы этого параметра необходимо включить фасетный поиск.

  • group_field (string) – Поле, по которому группируются результаты поиска. :query number group_limit: Максимальное количество групп. Это поле можно использовать только в том случае, если задан group_field.

  • group_sort (json) – Это поле задаёт порядок групп в поиске с использованием group_field. По умолчанию используется сортировка по релевантности.

  • highlight_fields (json) – Указывает, какие поля нужно подсветить. Если этот параметр задан, объект результата содержит поле highlights с записью для каждого указанного поля.

  • highlight_pre_tag (string) – Строка, вставляемая перед подсвеченным словом в выводе подсветки.

  • highlight_post_tag (string) – Строка, вставляемая после подсвеченного слова в выводе подсветки.

  • highlight_number (number) – Количество фрагментов, возвращаемых в результатах подсветки. Если поисковый термин встречается реже, чем заданное количество фрагментов, возвращаются более длинные фрагменты.

  • highlight_size (number) – Количество символов в каждом фрагменте подсветки.

  • include_docs (boolean) – Включить в ответ полное содержимое документов.

  • include_fields (json) – JSON-массив имён полей, включаемых в результаты поиска. Для включения поля в результаты его необходимо индексировать с параметром store:true.

  • limit (number) – Ограничить количество возвращаемых документов указанным числом. При группированном поиске этот параметр ограничивает количество документов в каждой группе.

  • q (string) – Псевдоним для query.

  • query (string) – Обязательный параметр. Строка запроса Lucene.

  • ranges (json) – Это поле задаёт диапазоны для числовых полей поиска с фасетами. Значение представляет собой объект JSON, в котором имена полей — это числовые поля поиска с фасетами, а значения полей — объекты JSON. Имена полей объектов JSON задают названия диапазонов. Значения — строки, описывающие диапазон, например «[0 TO 10]».

  • sort (json) – Задаёт порядок сортировки результатов. При группированном поиске (когда используется group_field) этот параметр задаёт порядок сортировки внутри группы. По умолчанию используется сортировка по релевантности. Строка JSON вида "fieldname<type>" или -fieldname<type> для сортировки по убыванию, где fieldname — имя строкового или числового поля, а type — число, строка или JSON-массив строк. Часть type является необязательной; по умолчанию используется number. Примеры: "foo", "-foo", "bar<string>", "-foo<number>" и ["-foo<number>", "bar<string>"]. Строковые поля, используемые для сортировки, не должны быть анализируемыми. Поля, используемые для сортировки, должны индексироваться тем же индексатором, который используется для поискового запроса.

  • stale (string) – Задайте значение ok, чтобы разрешить использование устаревшего индекса.

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

  • ETag – Подпись ответа

  • Transfer-Encoding – chunked

Объект JSON ответа:
  • rows (array) – Массив объектов строк представления. По умолчанию возвращаются только идентификатор и ревизия документа.

  • total_rows (number) – Количество документов в базе данных/представлении.

  • bookmark (string) – Непрозрачный идентификатор для постраничной навигации.

Коды состояния:
  • 200 OK – Запрос успешно выполнен

  • 400 Bad Request – Недопустимый запрос

  • 401 Unauthorized – Требуется разрешение на чтение

  • 403 Forbidden – Недостаточно разрешений / Слишком много запросов с недействительными учётными данными

  • 404 Not Found – Указанная база данных, проектный документ или представление не найдены

Примечание

Прежде чем использовать параметры counts, drilldown и ranges, необходимо включить фасетный поиск.

Примечание

Фасетный поиск и группировка не поддерживаются для поиска по разделам, поэтому в таких запросах не следует использовать следующие параметры запроса: counts, drilldown, ranges, group_field, group_limit, group_sort``.

Примечание

Не используйте одновременно параметры bookmark и stale. Эти параметры ограничивают выбор реплик сегментов, используемых для ответа. Их совместное использование может привести к проблемам при обращении к медленным или недоступным репликам.

См. также

Дополнительную информацию о работе поиска см. в руководстве пользователя по поиску.

/{db}/_design/{ddoc}/_search_info/{index}

Предупреждение

Для работы конечных точек поиска требуется запущенный плагин поиска, подключённый к каждому узлу кластера. Подробности см. в разделе Установка плагина поиска.

Добавлено в версии 3.0.

GET /{db}/_design/{ddoc}/_search_info/{index}
Параметры:
  • db – Имя базы данных

  • ddoc – Имя проектного документа

  • index – Имя поискового индекса

Коды состояния:
  • 200 OK – Запрос успешно выполнен

  • 400 Bad Request – Тело запроса некорректно (неверно сформировано или отсутствует одно из обязательных полей)

  • 401 Unauthorized – Несанкционированный запрос к защищённому API

  • 403 Forbidden – Недостаточно разрешений / Слишком много запросов с недействительными учётными данными

  • 500 Internal Server Error – Произошла ошибка сервера (или ошибка другого типа)

Запрос:

GET /recipes/_design/cookbook/_search_info/ingredients HTTP/1.1
Accept: application/json
Host: localhost:5984

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "name": "_design/cookbook/ingredients",
    "search_index": {
        "pending_seq": 7125496,
        "doc_del_count": 129180,
        "doc_count": 1066173,
        "disk_size": 728305827,
        "committed_seq": 7125496
    }
}

Copyright © 2025 The Apache Software Foundation — Licensed under the Apache License 2.0
https://docs.couchdb.org/en/3.5.1/api/ddoc/search.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API