Обеспечьте мультиарендность с GATE

Я использую GATE в одном из своих приложений, и у меня есть несколько запросов, связанных с мультиарендностью. Мои требования приведены ниже.

  • У меня есть набор ключевых слов, специфичный для каждого пользователя, и в зависимости от того, какой пользователь вошел в систему, мне нужно инициализировать географический справочник с соответствующим набором ключевых слов.
  • В определенный момент в мое приложение может войти несколько пользователей, и я хочу убедиться, что подход с несколькими арендаторами не будет неэффективным.
  • Я не хочу хранить ключевые слова для каждого пользователя в файлах .lst, а хранить их в БД (mongo) и вводить только во время выполнения.

Я поискал в Интернете несколько примеров и, хотя я нашел некоторые мысли о работе с Processing Resource, я не знаю, как это повлияет на производительность.

Ваша помощь очень ценится.

Заранее спасибо,

Саджит


person sajith.vim    schedule 30.10.2014    source источник


Ответы (1)


Это интересный пример использования географического справочника GATE.

Я считаю, что вам обязательно стоит добавить идентификатор пользователя в качестве функции при создании документа. Таким образом, вы сможете позже сделать свой запрос MongoDB в обрабатывающем ресурсе.

При обработке документа у вас есть несколько вариантов:

  1. Создайте собственный PR, который вызывает MongoDB и реплицирует DefaultGazetteer код, но с перезаписанным методом "init" (либо наследовать, либо оборачивать его, не вдавались в подробности, если это возможно). Вместо метода инициализации по умолчанию вы должны предоставить свой список ключевых слов, затем установить необходимые поля и вызвать execute ().

  2. Если у вас не слишком много ключевых слов, создайте собственный PR (или отличный PR скриптов), который вызывает MongoDB и выполняет простой поиск по регулярным выражениям, например тот, что в этой ветке. Они также предлагают библиотеку stringsearch в комментариях. Затем просто используйте начальный и конечный индексы для самостоятельного создания аннотаций Lookup.

  3. Вы сказали, что не хотите этого, но все же несколько миллионов слов могут обрабатываться как по умолчанию, так и с помощью справочника Hash. Тем не менее, вы должны быть осторожны, поскольку документы шлюза могут быть очень интенсивными в памяти, если у вас слишком много аннотаций - в вашем случае поиск для всех ключевых слов пользователя.

Надеюсь это поможет.

person Yasen    schedule 30.10.2014