Лучшие практики algolia: новый индекс или теги?

Я успешно установил на своей веб-странице поисковую систему algolia. Мой бэкэнд синхронизирует общедоступные данные с algolia, и панель поиска работает нормально.

Теперь я хочу настроить то же самое для моего приложения admin. В отличие от общедоступного приложения, это приложение должно иметь возможность восстанавливать секретные данные из algolia.

Пока я могу думать о двух способах сделать это:

  1. Для каждого документа сохраните как «общедоступную» версию (с тегом «public»), так и версию для администратора (с тегом «admin» и с дополнительными полями). Пользовательские ключи api могут гарантировать, что каждое приложение имеет доступ к нужным данным.

ИЛИ

  1. Создайте новый индекс, возможно my_admin_collection_index, продублируйте настройки и используйте его так же, как my_collection_index из приложения администратора.

Итак, в первой версии я ищу тот же индекс, но с разными тегами; во второй версии я ищу два разных индекса.

Есть ли какие-то идеи о том, как выбирать между двумя подходами? Я бы сказал, что мне было бы проще дублировать документы и ставить на них теги, но я не могу точно сказать о влиянии такого подхода на производительность.

Спасибо !


person aherve    schedule 03.05.2016    source источник


Ответы (1)


Первый подход, состоящий в размещении всех объектов в едином индексе и пометке их разрешениями, является хорошим способом. Сочетание этого подхода с защищенными ключами API позволяет легко масштабируется, сохраняя при этом безопасную интерфейсную реализацию (например, встраивая ключ в код javascript).

Даже если движок Algolia поддерживает неограниченное количество индексов для каждого приложения (я видел пользователей с +700,000 индексов), наличие слишком большого количества индексов может привести к некоторым накладным расходам и замедлению индексации (особенно на взаимных планах, где вы разделяете процессоры индексирования с другие клиенты).

person redox    schedule 03.05.2016