Я создаю автозаполнение, которое должно быстро запросить более 10 миллионов слов / фраз, и столкнулся с некоторыми проблемами. Моя первая идея состояла в том, чтобы пройти через некоторую структуру древовидного / троичного дерева, но это строго сопоставление префиксов, что недостаточно для моего приложения (я хочу полное сопоставление инфиксов). Затем я перешел к некоторым более крупным решениям: индексации полного текста SqlServer, Lucene, Solr, Sphinx, но индексация полного текста Lucene и SqlServer на самом деле не полнотекстовая, а префикс с отличными функциями (soundex, близость и т. Д.). Я пытался придумать, как может помочь расстояние редактирования Левенштейна, но не смог найти способ быть как по крайней мере достаточно точным, так и поддерживать слова с большими расстояниями редактирования (т. Е. Google и ogl. Редактировать расстояние 3, но 3 способ высокого порога общего случая).
У меня вопрос: как это делают такие мощные компании, как Google / Bing и т. Д.? Они просто переборщили? Я бы вообразил нет, но я не могу найти поддержки этому.
Любая помощь будет оценена!