我在Django有产品数据库。产品名称Eg-(ABCD-E34F)。如果用户搜索'abcd34',我将如何获得ABCD-E34F产品的对象。
答案 0 :(得分:0)
正如人们所说,这将需要您考虑构建适合您需求的东西。我建议使用模糊匹配,它可以提供与您比较的任何相似度得分。
这是一个python包,展示了一些非常好的例子&可能符合您的要求; https://pypi.python.org/pypi/fuzzywuzzy
>>> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
>>> process.extract("new york jets", choices, limit=2)
[('New York Jets', 100), ('New York Giants', 78)]
>>> process.extractOne("cowboys", choices)
("Dallas Cowboys", 90)
>>> process.extractOne("System of a down - Hypnotize - Heroin", songs)
('/music/library/good/System of a Down/2005 - Hypnotize/01 - Attack.mp3', 86)
>>> process.extractOne("System of a down - Hypnotize - Heroin", songs, scorer=fuzz.token_sort_ratio)
("/music/library/good/System of a Down/2005 - Hypnotize/10 - She's Like Heroin.mp3", 61)