gpt4 book ai didi

postgresql - to_tsquery 查询电话号码

转载 作者:行者123 更新时间:2023-12-04 07:54:42 26 4
gpt4 key购买 nike

我们有一个 postgres 数据库和大量使用 tsvector 索引我们可能需要搜索的所有文本搜索属性,并且 ts_query 的使用在我们的 postgres 数据库中非常高效。但一种可能的搜索条件是电话号码,我们必须支持用户可能搜索的所有可能格式。
假设我在 tsvector 上的电话号码存储为“12985345885”,并且用户搜索 2985345885,我如何在 ts_query 中处理它?
基本上:

select
('12985345885')::tsvector @@ ('12985345885:*')::tsquery
是真的
select
('12985345885')::tsvector @@ ('2985345885:*')::tsquery
是假的。看来 postgres tsquery 不支持通配符前缀?

最佳答案

全文搜索不是正确的工具,因为它旨在搜索单词。
我会进行子字符串搜索和三元组索引:

CREATE EXTENSION IF NOT EXISTS pg_trgm;

CREATE INDEX ON mytab USING gin (phone gin_trgm_ops);

SELECT * FROM mytab WHERE phone LIKE '%2985345885%';

关于postgresql - to_tsquery 查询电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66767042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com