Я рекомендую использовать компактную версию Trie
, например, Radix Tree .Есть хорошая реализация здесь в python.
Веб-служба
Вы можете настроить отдельный веб-сервер для предоставления этой службы поиска, например, используя Flask .
Пример кода
Некоторые примеры кодов для
- загрузки предопределенных названий мест с использованием
python-radix-tree
и - завершают префикс до точки, где неоднозначностьзапускается и
- находит все префиксные совпадения до 10 записей.
ниже:
from radix_tree import RadixTree
locations = [
"los angeles",
"san diego",
"san francisco",
"san marino",
"santa monica"
]
trie = RadixTree()
for loc in locations:
trie.insert(loc, loc)
print trie.complete("s")
print trie.search_prefix('san', 10)
Результат примера кода
san
['santa monica', 'san diego', 'san francisco', 'san marino']