Algolia
Поиск и управление индексами Algolia
Algolia — это мощная платформа размещенного поиска, которая позволяет разработчикам и командам обеспечивать быстрые и релевантные поисковые возможности в своих приложениях и веб-сайтах. Algolia предоставляет полнотекстовый, фасетный и фильтрованный поиск, а также аналитику и расширенные возможности ранжирования.
С Algolia вы можете:
- Обеспечивать молниеносный поиск: Предоставлять мгновенные результаты поиска по мере ввода пользователем, с допущением опечаток и синонимами
- Управлять и обновлять записи: Легко добавлять, обновлять или удалять объекты/записи в ваших индексах
- Выполнять расширенную фильтрацию: Использовать фильтры, фасеты и пользовательское ранжирование для уточнения и организации результатов поиска
- Настраивать параметры индекса: Настраивать релевантность, ранжирование, атрибуты для поиска и многое другое для оптимизации пользовательского опыта
- Масштабироваться уверенно: Algolia обрабатывает огромные объемы трафика и данных с глобально распределенной инфраструктурой
- Получать аналитику: Отслеживать аналитику, паттерны поиска и вовлеченность пользователей
В AACFlow интеграция с Algolia позволяет вашим агентам осуществлять поиск, управление и настройку индексов Algolia непосредственно в ваших рабочих процессах. Используйте Algolia для обеспечения динамического исследования данных, автоматизации обновлений записей, выполнения пакетных операций и многого другого — всё из единого инструмента в вашем рабочем пространстве.
Интегрируйте Algolia в ваш рабочий процесс. Осуществляйте поиск по индексам, управляйте записями (добавление, обновление, удаление, просмотр), настраивайте параметры индекса и выполняйте пакетные операции.
Поиск по индексу Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia |
indexName | string | Да | Название индекса Algolia для поиска |
query | string | Да | Текст поискового запроса |
hitsPerPage | number | Нет | Количество результатов на странице (по умолчанию: 20) |
page | number | Нет | Номер страницы для получения (по умолчанию: 0) |
filters | string | Нет | Строка фильтра (например, "category:electronics AND price < 100") |
attributesToRetrieve | string | Нет | Список атрибутов для получения, разделенный запятыми |
| Параметр | Тип | Описание |
|---|
hits | array | Массив соответствующих записей |
↳ objectID | string | Уникальный идентификатор записи |
↳ _highlightResult | object | Выделенные атрибуты, соответствующие запросу. Каждый атрибут имеет значение, matchLevel (none, partial, full) и matchedWords |
↳ _snippetResult | object | Фрагментированные атрибуты, соответствующие запросу. Каждый атрибут имеет значение и matchLevel |
↳ _rankingInfo | object | Информация о ранжировании для результата. Присутствует только при включенном getRankingInfo |
↳ nbTypos | number | Количество опечаток в совпадении запроса |
↳ firstMatchedWord | number | Позиция первого совпавшего слова |
↳ geoDistance | number | Расстояние в метрах для результатов геопоиска |
↳ nbExactWords | number | Количество точно совпавших слов |
↳ userScore | number | Пользовательская оценка ранжирования |
↳ words | number | Количество совпавших слов |
nbHits | number | Общее количество соответствующих результатов |
page | number | Текущий номер страницы (начиная с 0) |
nbPages | number | Общее количество доступных страниц |
hitsPerPage | number | Количество результатов на странице (1-1000, по умолчанию 20) |
processingTimeMS | number | Время обработки на стороне сервера в миллисекундах |
query | string | Выполненный поисковый запрос |
parsedQuery | string | Строка запроса после нормализации и удаления стоп-слов |
facets | object | Количество фасетов по ключу имени фасета, каждый содержит пары значение-количество |
facets_stats | object | Статистика (min, max, avg, sum) для числовых фасетов |
exhaustive | object | Флаги полноты для facetsCount, facetValues, nbHits, rulesMatch и typo |
Добавление или замена записи в индексе Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
objectID | string | Нет | Идентификатор объекта для записи (автоматически генерируется, если не предоставлен) |
record | json | Да | JSON-объект, представляющий запись для добавления |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания операции индексирования |
objectID | string | Идентификатор объекта добавленной или замененной записи |
createdAt | string | Временная метка создания записи (присутствует только при автоматической генерации objectID) |
updatedAt | string | Временная метка обновления записи (присутствует только при замене существующей записи) |
Получение записи по objectID из индекса Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
objectID | string | Да | Идентификатор объекта записи для получения |
attributesToRetrieve | string | Нет | Список атрибутов для получения, разделенный запятыми |
| Параметр | Тип | Описание |
|---|
objectID | string | Идентификатор объекта полученной записи |
record | object | Данные записи (все атрибуты) |
Получение нескольких записей по objectID из одного или нескольких индексов Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia |
indexName | string | Да | Название индекса по умолчанию для всех запросов |
requests | json | Да | Массив объектов, указывающих записи для получения. Каждый должен иметь "objectID" и опционально "indexName" и "attributesToRetrieve". |
| Параметр | Тип | Описание |
|---|
results | array | Массив полученных записей (null для записей, которые не найдены) |
↳ objectID | string | Уникальный идентификатор записи |
Частичное обновление записи в индексе Algolia без полной замены
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
objectID | string | Да | Идентификатор объекта записи для обновления |
attributes | json | Да | JSON-объект с атрибутами для обновления. Поддерживает встроенные операции, такие как \{"stock": {"_operation": "Decrement", "value": 1}} |
createIfNotExists | boolean | Нет | Создавать ли запись, если она не существует (по умолчанию: true) |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания операции обновления |
objectID | string | Идентификатор объекта обновленной записи |
updatedAt | string | Временная метка обновления записи |
Удаление записи по objectID из индекса Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
objectID | string | Да | Идентификатор объекта записи для удаления |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания удаления |
deletedAt | string | Временная метка удаления записи |
Просмотр и итерация по всем записям в индексе Algolia с использованием курсорной пагинации
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia (должен иметь ACL для просмотра) |
indexName | string | Да | Название индекса Algolia для просмотра |
query | string | Нет | Поисковый запрос для фильтрации просматриваемых записей |
filters | string | Нет | Строка фильтра для сужения результатов |
attributesToRetrieve | string | Нет | Список атрибутов для получения, разделенный запятыми |
hitsPerPage | number | Нет | Количество результатов на странице (по умолчанию: 1000, максимум: 1000) |
cursor | string | Нет | Курсор из предыдущего ответа просмотра для пагинации |
| Параметр | Тип | Описание |
|---|
hits | array | Массив записей из индекса (до 1000 на запрос) |
↳ objectID | string | Уникальный идентификатор записи |
cursor | string | Непрозрачная строка курсора для получения следующей страницы результатов. Отсутствует, когда больше нет результатов. |
nbHits | number | Общее количество записей, соответствующих критериям просмотра |
page | number | Текущий номер страницы (начиная с 0) |
nbPages | number | Общее количество доступных страниц |
hitsPerPage | number | Количество результатов на странице (1-1000, по умолчанию 1000 для просмотра) |
processingTimeMS | number | Время обработки на стороне сервера в миллисекундах |
Выполнение пакетных операций добавления, обновления, частичного обновления или удаления записей в индексе Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
requests | json | Да | Массив пакетных операций. Каждый элемент имеет "action" (addObject, updateObject, partialUpdateObject, partialUpdateObjectNoCreate, deleteObject) и "body" (данные записи, должны включать objectID для обновления/удаления) |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания пакетной операции |
objectIDs | array | Массив идентификаторов объектов, затронутых пакетной операцией |
Список всех индексов в приложении Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia |
page | number | Нет | Номер страницы для пагинации индексов (по умолчанию: без пагинации) |
hitsPerPage | number | Нет | Количество индексов на странице (по умолчанию: 100) |
| Параметр | Тип | Описание |
|---|
indices | array | Список индексов в приложении |
↳ name | string | Название индекса |
↳ entries | number | Количество записей в индексе |
↳ dataSize | number | Размер данных индекса в байтах |
↳ fileSize | number | Размер файлов индекса в байтах |
↳ lastBuildTimeS | number | Продолжительность последней сборки в секундах |
↳ numberOfPendingTasks | number | Количество ожидающих задач индексирования |
↳ pendingTask | boolean | Имеет ли индекс ожидающие задачи |
↳ createdAt | string | Временная метка создания индекса |
↳ updatedAt | string | Временная метка последнего обновления индекса |
↳ primary | string | Название первичного индекса (если это реплика) |
↳ replicas | array | Список названий индексов-реплик |
↳ virtual | boolean | Является ли индекс виртуальной репликой |
nbPages | number | Общее количество страниц индексов |
Получение настроек индекса Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | API-ключ Algolia |
indexName | string | Да | Название индекса Algolia |
| Параметр | Тип | Описание |
|---|
searchableAttributes | array | Список поисковых атрибутов |
attributesForFaceting | array | Атрибуты, используемые для фасетирования |
ranking | array | Критерии ранжирования |
customRanking | array | Пользовательские критерии ранжирования |
replicas | array | Список названий индексов-реплик |
hitsPerPage | number | Количество результатов на странице по умолчанию |
maxValuesPerFacet | number | Максимальное количество значений фасета, возвращаемых |
highlightPreTag | string | HTML-тег, вставляемый перед выделенными частями |
highlightPostTag | string | HTML-тег, вставляемый после выделенных частей |
постраничная выборкаLimitedTo | number | Максимальное количество результатов, доступных через пагинацию |
Обновление настроек индекса Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia (должен иметь ACL editSettings) |
indexName | string | Да | Название индекса Algolia |
settings | json | Да | JSON-объект с настройками для обновления (например, \{"searchableAttributes": ["name", "description"], "customRanking": ["desc(popularity)"]}) |
forwardToReplicas | boolean | Нет | Применять ли изменения к индексам-репликам (по умолчанию: false) |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания обновления настроек |
updatedAt | string | Временная метка обновления настроек |
Удаление всего индекса Algolia и всех его записей
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia (должен иметь ACL deleteIndex) |
indexName | string | Да | Название индекса Algolia для удаления |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания удаления индекса |
deletedAt | string | Временная метка удаления индекса |
Копирование или перемещение индекса Algolia в новое место назначения
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia |
indexName | string | Да | Название исходного индекса |
operation | string | Да | Операция для выполнения: "copy" или "move" |
destination | string | Да | Название индекса назначения |
scope | json | Нет | Массив областей для копирования (только для операции "copy"): ["settings", "synonyms", "rules"]. Пропустите, чтобы скопировать всё, включая записи. |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания операции копирования/перемещения |
updatedAt | string | Временная метка выполнения операции |
Очистка всех записей из индекса Algolia с сохранением настроек, синонимов и правил
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia (должен иметь ACL deleteIndex) |
indexName | string | Да | Название индекса Algolia для очистки |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания операции очистки |
updatedAt | string | Временная метка очистки записей |
Удаление всех записей, соответствующих фильтру, из индекса Algolia
| Параметр | Тип | Обязательный | Описание |
|---|
applicationId | string | Да | Идентификатор приложения Algolia |
apiKey | string | Да | Административный API-ключ Algolia (должен иметь ACL deleteIndex) |
indexName | string | Да | Название индекса Algolia |
filters | string | Нет | Выражение фильтра для соответствия записей для удаления (например, "category:outdated") |
facetFilters | json | Нет | Массив фильтров фасетов (например, ["brand:Acme"]) |
numericFilters | json | Нет | Массив числовых фильтров (например, ["price > 100"]) |
tagFilters | json | Нет | Массив фильтров тегов с использованием атрибута _tags (например, ["published"]) |
aroundLatLng | string | Нет | Координаты для фильтра геопоиска (например, "40.71,-74.01") |
aroundRadius | number | Нет | Максимальный радиус в метрах для геопоиска или "all" для неограниченного |
insideBoundingBox | json | Нет | Координаты ограничивающего прямоугольника как [[lat1, lng1, lat2, lng2]] для фильтра геопоиска |
insidePolygon | json | Нет | Координаты полигона как [[lat1, lng1, lat2, lng2, lat3, lng3, ...]] для фильтра геопоиска |
| Параметр | Тип | Описание |
|---|
taskID | number | Идентификатор задачи Algolia для отслеживания операции удаления по фильтру |
updatedAt | string | Временная метка выполнения операции |