Мы работаем над дизайном и разработкой безголовых приложений. В настоящее время мы сталкиваемся с проблемой **architectural question**
, на которую нам нужно найти ответ, чтобы продолжить проектирование системы, мы не являемся экспертами в **search engine**
, но мы проводим исследования в этой области.
Наши технологии stack is .net Core/SQL Server
, а в будущем мы можем plan to use Raven DB.
Вместо использования API доставки контента мы планируем использовать Query based content delivery
, чтобы сделать его более гибким и сократить накладные расходы на разработку API для каждой интерфейсной инфраструктуры. и Мы решили использовать индексирование и индексирование для большей части управления данными, то есть для уменьшения нагрузки на БД. Таким образом, в основном большинство операций с контентом будет обрабатываться с помощью индексов.
Проблема, которую мы наблюдали с поисковой системой: в первом сокращении мы планировали использовать Elastic Search
, но снова мы поняли следующее issues
.
Система будет иметь dynamic field management and field data management
, т.е. пользователь будет редактировать поля и значения полей во время работы системы. каждый раз, когда нам может потребоваться перестроить индекс для обновления поля в поиске elasti c (мы не являемся экспертами в поисковой системе), это увеличит нагрузку на сеть, что для нас может оказаться невозможным для работы в большой многопользовательской среде. .
Итак, мы decided to go with Lucene.net
, но перед тем, как продолжить с lucene.net
, мы хотим убедиться, что могут быть решены следующие проблемы.
Динамическое обновление поля без перестройки индексации каждый раз, поддерживает ли lucene это или мы можем настроить это для управления?
Вторая проблема - это управление отдельными индексами для каждого клиента с распределенной архитектурой.
Мы планируем создать раздел для каждого арендатор в производстве, поэтому данные не будут в одном индексе. Это связано с тем, что нам не нужно сильно нагружать веб-сервер для управления результатами запросов на основе разрешений, вместо этого Lucene сделает это. поэтому для любого запроса результаты будут возвращены на основе разрешения пользователей, которые его запросили, поэтому лучше иметь отдельный индекс для каждого клиента, чтобы уменьшить количество операций.
Возможно ли распределить Lucene
Так любезно помогите найти решение для двух вышеуказанных проблем, с которыми мы сталкиваемся прямо сейчас.