W szczególności chciałbym zadzwonić do funkcji Postgres levenshtein
. chciałbym napisać blasku zapytanie do powrotu słowa podobne do słowa „podobny”, czyli równowartość:wywoływanie funkcji SQL z Blaze
select word from wordtable where levenshtein(word, 'similar') < 3;
W Blaze powinno to wyglądać mniej więcej tak
db.wordtable.word[levenshtein(db.wordtable.word, 'similar') < 3]
ale levenshtein
nie jest zdefiniowane w dowolnym module, który importuję po stronie Pythona. Gdzie/jak uzyskać definicję levenshtein
do użycia w wyrażeniach Blaze po stronie Pythona?
Znalazłem pakiet sqlalchemy.sql.func
który zapewnia Python uchwyty do funkcji SQL do użytku z sqlalchemy, ale te nie działają w wyrażeniach Blaze. Czy istnieje odpowiednik pakietu Blaze lub jak mogę użyć sqlalchemy.sql.func.levenshtein
w wyrażeniu Blaze?
Pamiętaj, że nie znam Blaze.Oczekuję jednak, że wyraźne poparcie dla funkcji 'levenshtein' jest mało prawdopodobne, ponieważ nie jest nawet częścią języka podstawowego PostgreSQL, ale raczej rozszerzenie z modułu' fuzzystrmatch'. Więc prawdopodobnie musisz wiedzieć, jak rozszerzyć wyrażenia Blaze, aby obsługiwać niestandardowe funkcje SQL. – beldaz
http://stackoverflow.com/a/33483264/290182 wydaje się sugerować, że wsparcie dla UDF (a więc prawdopodobnie również modułów rozszerzeń) nie jest obecnie dostępne, choć jest to zdecydowanie możliwe. – beldaz