使用SQLAlchemy进行IDE文本选择

时间:2016-02-04 06:44:01

标签: python postgresql sqlalchemy

IDE允许文本搜索,如:

  

搜索文字:subnepas

     

匹配的项目: sub mit_ ne w_ pas

我认为它方便网络应用的用户,例如20ba匹配202 Baker Street

如何查询SQLAlchemy字符串列以有效地执行此类子串匹配?我偏向于Postgres,但我不想使用ngrams或其他全文索引。

1 个答案:

答案 0 :(得分:1)

我猜你正在寻找类似levenshtein算法的东西。

PostgreSQL已经有了levenshtein / fuzzystrmatch,您可以使用: http://www.postgresql.org/docs/current/static/fuzzystrmatch.html

以下是一个如何在SQLAlchemy中使用它的示例: http://nullege.com/codes/show/src@n@o@nomenklatura-HEAD@nomenklatura@model@matching.py/47/sqlalchemy.func.levenshtein

我个人直到现在才使用此功能。我总是在用户端进行levenshtein比较,但是我有最多100个字符串要进行比较,我不得不加载它们,但是在更大的范围内,让DB更好地做这个。