Если вы собираетесь разработать целую поисковую систему, предназначенную для масштабирования как по объему, так и по объему, вам понадобится что-то надежное для поддержки ваших запросов.
Если вы собираетесь использовать расстояние редактирования, Кровать - хорошая альтернатива для вашей структуры индекса. Другой хороший подход, в зависимости от размера вашего набора данных, - это использование автоматов Левенштейна . Автоматы Левенштейна также отлично подходят для обеспечения автозаполнения функций, которые могут вам понадобиться, поскольку вы разрабатываете поисковую систему.
Другой подход к редактированию расстояния заключается в использовании n-грамм в сочетании с индексом Жакара. Для этого подхода вы можете использовать Minhash + LSH . Также вы можете использовать Jaccard в качестве метрики расстояния (1 - индекс Джакарта), которая учитывает неравенство треугольника, таким образом, может использоваться в дереве метрик, таком как VP-tree .
Один из этих подходов, безусловно, поможет вам.