【问题标题】:SQLAlchemy Search AlgorithmsSQLAlchemy 搜索算法
【发布时间】:2011-07-25 07:09:31
【问题描述】:

我正在开发一个使用 SQLAlchemy 的金字塔 Web 应用程序。
我有一个7000所美国大学的数据库,前端有一个输入框输入大学。输入框使用 jQuery UI 的自动完成功能,它稍后会使用 AJAX 调用我的金字塔应用程序以获取选项列表。
我根据术语获取结果的方式如下: session.query(University).filter(University.name.like('%' + term + '%')
这工作相当不错,但是,我想支持以下内容 - 当用户进入加州大学洛杉矶分校时,我想找到加州大学洛杉矶分校。对于 FSU - 佛罗里达州大学等。
除了迭代我的整个大学列表(~8000)并手动确定名称是否匹配之外,有没有办法为 sqlalchemy 的查询/过滤器指定匹配函数?

谢谢!

【问题讨论】:

    标签: search sqlalchemy


    【解决方案1】:

    SQLAlchemy 本质上是 SQL 的前端。如果您的查询不是可以轻松表示为 SQL 的东西,那么相对于手动迭代而言,尝试在该方向上扭转它不太可能带来任何好处 - 它仍然需要拉出整行并进行比较它,不管你做还是它做。

    但是,如果您在搜索 X 时,还想搜索可以从 X 派生的 Y,请先查找 Y,然后使用 OR operator 查询两者。

    即。不要这样做:

    get all rows, and for each row, see if it matches X or Y

    改为:

    get all rows that match X plus all rows that match Y.

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 2011-08-16
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 2016-09-01
      相关资源
      最近更新 更多