Чтобы найти «cat» в строке «dogcatcow»
Единственное возможное решение, о котором я сейчас могу подумать, - это завершить транзакцию и выполнить:
EntityIterable entities = txn.find(entityType);
От Вот только стандартная Java итерация и итерация по свойствам, содержащим ключевое слово "cat"
Другая идея заключается в обработке каждого свойства, которое вы помещаете в хранилище Xodus. Вы можете создать типичную службу значения ключа, которая будет обрабатывать (например, обработку текста для извлечения слов с помощью Apache Tika) свойства текста до или после сохранения в хранилище.
Итак, из вашего примера «dogcatcow» вы можете иметь 1 ключ, который связывает слова «собака», «кошка» и «корова» с сущностью [или наоборот] (так что, возможно, после сохранения лучше время для создания этих проиндексированных ключей).
В качестве примечания: links - это то, что отличает Xodus от других баз данных, по моему опыту, это очень мощный и полезный во многих случаях.
Отсюда просто findWithLinks
при поиске ключей.
Вы можете обратиться к этому коду для примера хранилища KV: https://github.com/divroll/backend/blob/master/src/main/java/com/divroll/backend/service/jee/JeeKeyValueService.java