fast-autocomplete
fast-autocomplete copied to clipboard
Casing issue with synonyms
Hi there, I have encountered a bug that occurs when the synonym key includes uppercase characters. I use the autocomplete for shows' titles, which have uppercase characters. The problem is that if I run the program below, nothing is returned as an autocomplete suggestion
def autocomplete(query, x):
valid_chars = string.ascii_letters
words = {
'Attack on Titan': {}
}
synonyms = {
"Attack on Titan": ["Shingeki no Kyojin", "AOT"],
}
autocomplete = AutoComplete(
words=words, synonyms=synonyms, valid_chars_for_string=valid_chars)
return autocomplete.search(word=query, size=x)
print(autocomplete('Shin', 5))
However if you change the key of both dictionaries to "attack on titan", the program works as expected.
Same issue on my side.
This is because by default fast autocomplete normalizes words. As a part of normalization, it lowercases everything. But seems like maybe it doesn't by default do it for the synonyms. I will make it normalize the synonyms in the next release.