Проблема, которую я вижу с DAWGs ;DAWG относительно сложны.Вы можете получить уникальный путь через все слова (для того, чтобы связать некоторые данные с ключом, который вы обычно хотите), но это намного сложнее, чем использование дерева, которое сжато только префиксом и будет иметь уникальные терминальные узлы.Сжатие суффиксов, которое вы получаете с помощью DAWG, того стоит, только если у вас очень ограниченная память (как на встроенном устройстве), чего вы, вероятно, нет, поскольку упоминаете Lucene.* Для этой задачи создано дерево префиксов.Это идеально.Если вам нужно написать свое собственное, вот куда вы пойдете.Конечно, для этого уже есть много библиотек, которые идеально подходят, если у вас нет особых потребностей.