Forum QGIS
Plugin QuickFinder - postgis search - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Plugin QuickFinder - postgis search (/thread-1609.html)



Plugin QuickFinder - postgis search - tm261700 - 15-03-2018

Autor dla wyszukiwania bezpośrednio w bazie podaje poniższy przykład:
Kod:
SELECT textfield, ST_AsBinary(wkb_geometry)::geometry
FROM searchtable
WHERE textfield LIKE %(search)s
LIMIT %(limit)s

Próbując znaleźć ulicę po kawałku frazy nie otrzymamy wyniku np. 'Kochan' (w przypadku konfiguracji wyszukiwania w zakładce "project search" wystarczy kawałek frazy).
Chyba niefortunnie autor użył ciągu zawierający znak procenta %(search)s jako elementu do podstawienia (być może związane jest to ze składnią samego języka python). 
Próba złożenia zapytania do wyszukiwania po kawałku np.  WHERE nazwa LIKE 'Kochan%' plus warunek wykorzystania %(search)s niestety przynosi tylko błędy.

Czy wie ktoś jak rozwiązać ten problem?

Dodatkowo sam mechanizm nie uwzględnia wielkości znaków przy wyszukiwaniu ale z tym można sobie poradzić.

Kod:
SELECT
nazwa,
ST_AsBinary(geom)::geometry
FROM emuia_ulice
WHERE lower(nazwa) LIKE lower(%(search)s) LIMIT %(limit)s



RE: Plugin QuickFinder - postgis search - tm261700 - 15-03-2018

Coś mi się wkleiło wyżej więc jeszcze raz.

Próbując znaleźć ulicę po kawałku frazy nie otrzymamy wyniku np. 'Kochan' (w przypadku konfiguracji wyszukiwania w zakładce "project search" wystarczy kawałek frazy).
Chyba niefortunnie autor użył ciągu zawierający znak procenta %(search)s jako elementu do podstawienia (być może związane jest to ze składnią samego języka python).
Próba złożenia zapytania do wyszukiwania po kawałku np. WHERE nazwa LIKE 'Kochan%' plus warunek wykorzystania%(search)s niestety przynosi tylko błędy.

Czy wie ktoś jak rozwiązać ten problem?

Dodatkowo sam mechanizm nie uwzględnia wielkości znaków przy wyszukiwaniu ale z tym można sobie poradzić.