Стратегия для Laravel scout с более чем миллионом записей и несколькими взаимозаменяемыми драйверами (например, TNT и Algolia)

#laravel #search #full-text-search #algolia #laravel-scout

#laravel #Поиск #полнотекстовый поиск #algolia #laravel-scout

Вопрос:

Я немного использовал Algolia, и это потрясающий сервис. Я также использовал драйвер TNT-search для scout, и он тоже довольно хорош, но на самом деле не дотягивает до возможностей, скорости и простоты, которые вы получаете с Algolia.

К сожалению, Algolia становится очень дорогой при работе с большим количеством записей — например, одно из наших приложений содержит более 10 миллионов строк с возможностью поиска, что составляет тысячи долларов в месяц!

Кто-нибудь добился успеха в использовании обоих вместе? т. Е. Я хотел бы использовать Algolia для последних записей или категорий, где мне нужны более расширенные возможности поиска (100 тыс. Записей), а затем использовать TNT search для остальной части.

Редактировать:

Ответом был Elasticsearch. Это немного сложнее в настройке, но обладает такой большой гибкостью. Я бы настоятельно рекомендовал https://github.com/matchish/laravel-scout-elasticsearch чтобы легко подключить его к Laravel Scout.

Комментарии:

1. Вы можете попробовать мой драйвер elasticsearch для scout github.com/matchish/laravel-scout-elasticsearch

Ответ №1:

Что ж, AWS Elasticsearch очень хорош и дешев .. вы можете использовать его, и он очень прост в использовании и настройке с laravel AWS Elasticsearch цены Вы можете начать с r3.large.elasticsearch это будет стоить вам около 180 долларов в месяц, и если вы хотите больше r3.xlarge.elasticsearch тоже будет потрясающими это послужит вам.

чтобы настроить AWS Elasticsearch с помощью laravel, вы можете прочитать эту статью с инструкциями по интеграции вашего приложения Laravel с Elasticsearch

Ответ №2:

Elasticsearch уже предложен в другом ответе в качестве экономически эффективной альтернативы. Но если вы ищете что-то похожее на Algolia, но с открытым исходным кодом, ознакомьтесь с Typesense . Это должно быть проще в настройке и управлении, а также такие функции, как исправление опечаток и т. Д., Просто Работают из коробки.

Ответ №3:

Этот ответ может быть запоздалым, но если у кого-то все еще есть эта проблема, в Laravel scout есть searchableUsing() метод, который определяет используемую поисковую систему, вы можете переопределить его, чтобы настроить разные драйверы поиска для разных моделей. В этом блоге пошагово описано, как это сделать