AACsearch
Руководства по миграции

Переход с Algolia на AACsearch

Пошаговое руководство по переносу поиска с Algolia на AACsearch. Полная миграция за несколько часов, без времени простоя.

Миграция с Algolia на AACsearch занимает всего несколько часов. Это пошаговое руководство поможет вам перенести товары, настройки и переключить ваше приложение на новый поиск без остановки сайта.

Обзор процесса

ЭтапДействиеВремя
1Экспортируйте товары из Algolia5 мин
2Создайте индекс в AACsearch5 мин
3Загрузите товары10 мин
4Настройте фильтры и синонимы15 мин
5Обновите код вашего сайта30 мин
6Переключитесь на AACsearch5 мин

Итого: ~70 минут для большинства сайтов.

Этап 1: Экспортируйте товары из Algolia

Способ 1: Через Algolia CLI

Установите Algolia CLI и экспортируйте индекс:

# Установите CLI
npm install -g algolia-cli

# Экспортируйте индекс
algolia export \
  --app-id YOUR_ALGOLIA_APP_ID \
  --api-key YOUR_ADMIN_API_KEY \
  --index-name your_index_name \
  --output ./algolia-export.json

Способ 2: Через REST API

Если CLI не подходит, используйте curl:

curl "https://YOUR_APP_ID.algolia.net/1/indexes/YOUR_INDEX_NAME/browse" \
  -H "X-Algolia-API-Key: YOUR_ADMIN_API_KEY" \
  -H "X-Algolia-Application-Id: YOUR_APP_ID" \
  | jq '.hits' > algolia-export.json

Проверка файла

Откройте algolia-export.json и убедитесь:

  • ✓ Файл содержит ваши товары
  • ✓ Есть уникальные идентификаторы (обычно objectID)
  • ✓ Есть основные поля: название, описание, цена

Этап 2: Создайте индекс в AACsearch

  1. Откройте панель управления app.aacsearch.com
  2. Перейдите в Поиск → Индексы
  3. Нажмите Новый индекс
  4. Дайте название (например, "Товары")
  5. Нажмите Создать

Индекс создан и готов к приёму товаров.

Этап 3: Загрузите товары

Подготовка данных

Преобразуйте формат Algolia в формат AACsearch. В Algolia используется objectID, в AACsearch — id:

# Преобразуйте objectID → id и выберите нужные поля
cat algolia-export.json | jq '[.[] | {
  id: .objectID,
  title: .name,
  description: .description,
  price: .price,
  image_url: .image,
  product_url: .url,
  category: .category,
  stock_quantity: .stock
}]' > aacsearch-import.json

Загрузка через панель управления (рекомендуется)

Самый простой способ для 1000–50000 товаров:

  1. В панели AACsearch перейдите в Поиск → Индексы → ваш индекс → Импорт
  2. Нажмите Загрузить файл JSON
  3. Выберите aacsearch-import.json
  4. Нажмите Импортировать

Статус загрузки будет обновляться на экране.

Загрузка через API (для больших объемов)

Если у вас 50000+ товаров, используйте REST API:

curl -X POST "https://app.aacsearch.com/api/v1/indexes/your-index-slug/documents:batch" \
  -H "Authorization: Bearer YOUR_ADMIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d @aacsearch-import.json

Проверка импорта

После загрузки:

  1. В панели перейдите в Поиск → Индексы → ваш индекс → Статус
  2. Вы видите количество загруженных товаров
  3. Попробуйте поиск: введите название товара и проверьте результаты

Если товары не появляются мгновенно, подождите 1–2 минуты на индексирование.

Этап 4: Настройте поиск (опционально)

Фильтры (фасеты)

Если в Algolia у вас были фасеты (фильтры по категориям, бренду и т.д.), настройте их в AACsearch:

  1. В панели перейдите в Поиск → ваш индекс → Схема
  2. Найдите поле, которое должно быть фасетом (например, category)
  3. Включите флаг Фасет (Facet)
  4. Сохраните

Синонимы

Если в Algolia были синонимы:

  1. В панели перейдите в Поиск → ваш индекс → Синонимы
  2. Нажмите Добавить синоним
  3. Введите главное слово и его синонимы
  4. Пример: "кроссовки" → "кеды, sneakers, обувь спортивная"

Сортировка

По умолчанию товары сортируются по релевантности. Если нужна сортировка по цене:

  1. В Схема найдите поле price
  2. Включите флаг Сортировка (Sortable)
  3. Сохраните

Этап 5: Обновите код вашего сайта

Замена JavaScript клиента

В вашем коде Algolia замените клиент на AACsearch.

Раньше (Algolia):

import algoliasearch from 'algoliasearch/lite';

const searchClient = algoliasearch('APP_ID', 'SEARCH_KEY');
const index = searchClient.initIndex('your_index_name');

// Поиск
const results = await index.search('red shoes', {
  facets: ['category', 'brand'],
  filters: 'price < 100'
});

Теперь (AACsearch):

const search = new AacsearchWidget.Search({
  baseUrl: 'https://app.aacsearch.com',
  apiKey: 'ss_search_YOUR_KEY',
  indexSlug: 'your_index'
});

// Поиск
const results = await search.search({
  q: 'red shoes',
  facetBy: ['category', 'brand'],
  filterBy: 'price < 100'
});

Замена параметров запроса

AlgoliaAACsearch
index.search(query)search.search({ q: query })
{ facets: ['category'] }{ facetBy: ['category'] }
{ filters: 'price < 100' }{ filterBy: 'price < 100' }
{ hitsPerPage: 20 }{ perPage: 20 }
{ page: 1 }{ page: 1 }
{ sort: { price: 'asc' } }{ sortBy: 'price:asc' }

Обновление UI результатов

Структура результатов похожа, но есть небольшие различия:

Algolia:

{
  hits: [...],
  nbHits: 100,
  facets: { category: [...] }
}

AACsearch:

{
  results: [...],
  totalCount: 100,
  facets: { category: [...] }
}

Обновите обращения к свойствам в вашем коде.

Если вы используете InstantSearch (React, Vue, Angular)

Если вы используете react-instantsearch или аналог:

  1. Замените algoliasearch на AACsearch SearchClient
  2. Остальной код может остаться без изменений (компоненты совместимы)

Пример для React:

import { InstantSearch, SearchBox, Hits } from 'react-instantsearch';

const searchClient = new AacsearchWidget.Search({
  baseUrl: 'https://app.aacsearch.com',
  apiKey: 'ss_search_YOUR_KEY',
  indexSlug: 'products'
});

export default function App() {
  return (
    <InstantSearch searchClient={searchClient} indexName="products">
      <SearchBox />
      <Hits hitComponent={HitComponent} />
    </InstantSearch>
  );
}

Этап 6: Переключитесь на AACsearch

Перед переключением

  1. Протестируйте поиск — откройте сайт локально и проверьте все фильтры и сортировку
  2. Проверьте результаты — убедитесь, что результаты полные и корректные
  3. Проверьте производительность — время ответа должно быть < 500ms
  4. Проверьте на мобильных — убедитесь, что виджет работает на телефоне

Сделайте переключение

  1. Обновите код на боевом сервере (deploy)
  2. Очистите кэш браузера (Ctrl+Shift+Del)
  3. Откройте сайт в 2–3 браузерах и проверьте поиск

После переключения

  1. Следите за логами — ошибок не должно быть
  2. Следите за аналитикой — проверьте метрики поиска в панели AACsearch
  3. Готовьте резервный план — если что-то сломалось, вы можете быстро вернуть Algolia

План отката

Если в процессе что-то пойдет не так, вот как вернуться на Algolia:

  1. Быстро: Обновите код вашего сайта обратно на Algolia клиент (5 минут)
  2. Синхронизация: Если вы обновляли товары в AACsearch, убедитесь, что они также обновились в Algolia
  3. Проверка: Откройте сайт и убедитесь, что поиск работает как раньше

Совет: не удаляйте индекс Algolia на протяжении 1–2 недель после миграции.

Справка: соответствие полей Algolia ↔ AACsearch

AlgoliaAACsearchПримечание
objectIDidУникальный идентификатор товара
nametitleНазвание товара
descriptiondescriptionОписание товара
pricepriceЦена в числовом формате
currencycurrencyКод валюты (RUB, USD, EUR)
imageimage_urlURL изображения
urlproduct_urlURL страницы товара
categorycategoryКатегория товара
brandbrandБренд товара
stockstock_quantityКоличество на складе
availabilityСтатус: "in_stock" или "out_of_stock"

Частые вопросы

Q: Потеряются ли мои товары?
A: Нет, товары будут скопированы. Ничего не будет удалено, только добавлено.

Q: Могу ли я синхронизировать обе системы (Algolia и AACsearch) одновременно?
A: Да, во время перехода вы можете отправлять обновления товаров в обе системы. Потом отключите одну.

Q: Сколько это стоит?
A: Аналогично Algolia — по подписке в зависимости от объема поисков и товаров. Посмотрите цены.

Q: Есть ли бесплатный пробный период?
A: Да, 14 дней полного доступа без карты. Создайте аккаунт.

Q: Можно ли использовать оба сервиса одновременно?
A: Да, но это усложнит разработку. Рекомендуем полный переход.

Помощь и поддержка

On this page