我在地理服务器上有一层,可用于根据地址进行搜索。我当前的视图运行良好,但是我找不到正确的顺序(该顺序正确地(逻辑上)显示我的自动完成结果。
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格式的结果,结果却被错误地排序,但在逻辑上还是有些逻辑?