特别是我想调用Postgres levenshtein
函数。
我想编写blaze查询以返回与单词“like”相似的单词,即:
select word from wordtable where levenshtein(word, 'similar') < 3;
在Blaze中,该外观应类似于
db.wordtable.word[levenshtein(db.wordtable.word, 'similar') < 3]
但是我在python端导入的任何模块中均未定义
levenshtein
。在哪里/如何获得python方面的Blaze表达式中使用的
levenshtein
定义?我发现
sqlalchemy.sql.func
包为SQLAlchemy使用的SQL函数提供了Python句柄,但是这些在Blaze表达式中不起作用。是否有等效的Blaze软件包,或者如何在Blaze表达式内使用sqlalchemy.sql.func.levenshtein
? 最佳答案
Blaze只是一个前端。并进行重组,然后将查询提供给SQL后端,该后端从您的数据库中收集数据。
From the doku:
Blaze旨在忘记后端,并为所有后端使用相似/相同的语法。因此,它仅支持常见操作。我认为,不可能指定sqlalchemy或postgresql函数供大肆使用,因此,我认为目前尚不可能。
... 但 blaze的版本为0.10,在过去的一年中,它是一个积极贡献的beta版本。我有信心,这将在一段时间内实现。您始终可以在release notes中跟踪更改。
添加:
要进一步了解SQL中的UDF(用户定义函数)并大刀阔斧地使用它们,请比较link provided by beldaz(非常类似于此问题)。
关于python - 从Blaze调用SQL函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40671211/