Geoserver视图,正确排序地址搜索结果

时间:2019-07-17 11:54:05

标签: sql geoserver

我在地理服务器上有一层,可用于根据地址进行搜索。我当前的视图运行良好,但是我找不到正确的顺序(该顺序正确地(逻辑上)显示我的自动完成结果。

WITH q AS ( 
       SELECT to_tsquery(regexp_replace(Regexp_replace(Trim('%search_query%'), '[^[:alnum:][:space:]\-\.\,]', '', 'g'), e'\\s+', ':*&', 'g') || ':*') str) 
SELECT   n.id , 
         n.hs_mid , 
         n.street , 
         n.house_no , 
         n.post_no , 
         n.post , 
         n.town , 
         n.municipality , 
         n.address 
FROM     schema.addresses n , 
         q 
WHERE    n.tsv @@ q.str 
ORDER BY ts_rank(n.tsv, q.str) DESC , 
         n.street , 
         n.house_no

以“地址”作为我的参数。

如果我使用字符串'Some str'搜索,则会返回结果: -0000镇的一些str 1, -0000镇约10区 -Some Str 100,0000 town -0000镇一些Str 101 -0000镇一些102号街 ...

我对结果本身感到满意,但由于门牌号,订购感到困惑。逻辑结果将是正确的顺序1、2、3 ...

是不是因为我要求使用json格式的结果,结果却被错误地排序,但在逻辑上还是有些逻辑?

0 个答案:

没有答案