#indexing #lucene #relationship #hibernate-search
#индексирование #lucene #взаимосвязь #переход в спящий режим -поиск
Вопрос:
Когда я индексирую объекты в своем приложении (используя hibernate search и lucene) Я хотел бы сохранить в индексе некоторые атрибуты ассоциаций объекта. Мне нужно сохранить их в индексе, потому что мне нужно быстрое извлечение этих атрибутов. Каков наилучший подход для этого?
- Храните объектные отношения в lucene. Это кажется самым простым и быстрым подходом.
- Сохраняйте отношения объектов в базе данных
- Храните объектные отношения в чем-то отдельном, например, в быстром хранилище ключ-значение
Есть еще идеи о том, как я могу сохранить набор атрибутов из подмножества объектов из графа объектов моего приложения? Какое решение мне следует использовать?
Ответ №1:
Если вам будут часто нужны атрибуты при извлечении документа, я бы вставил их в индекс. Если их использование будет нечастым, я бы использовал вариант 2 или 3. Если вы знаете, когда они вам нужны, а когда нет, вы можете использовать FieldSelector для управления тем, загружаются ли (или какие) атрибуты.
Еще одним фактором, который следует учитывать, является количество элементов атрибутов и возможность включения их значений в запросы или алгоритмы ранжирования. Если ответ положительный, то вам гораздо лучше вставить их в индекс Lucene.