相关疑难解决方法(0)

如何安装附加模块 pg_trgm

我只想知道如何安装在 trigram 索引方案中使用的模块pg_tgrm,该方案允许您在索引上执行非锚定搜索模式

WHERE foo LIKE '%bar%';
Run Code Online (Sandbox Code Playgroud)

postgresql index installation postgresql-9.3 postgresql-extensions

39
推荐指数
2
解决办法
5万
查看次数

在字段上创建不区分大小写和重音/变音符号不敏感的搜索

我想知道在使用全文搜索时创建一个结合两个函数的索引是否有意义:lower(name)f_unaccent(name)Wheref_unaccent只是我的包装器,使 unaccent 函数不可变。

我确实有一个正在处理的索引:f_unaccent(name)使用varchar_pattern_ops. 我的问题是:组合lowerunaccent函数的索引是否会被 full_text_search 触发lower(f_unaccent(name))

我不知道该lower函数是否对全文搜索算法有用。

postgresql index full-text-search unaccent case-sensitive

6
推荐指数
1
解决办法
6825
查看次数

有效地搜索整个 1 级嵌套 JSONB

假设我们需要检查 jsonb 列是否包含与任何值(非嵌套,仅第一级)中的子字符串匹配的特定值。

如何有效地优化查询以搜索JSONB每个值的整个列?

是否有一些好的替代方法可以替代转换ILIKE %val%为文本的 jsonb 数据类型?

jsonb_each_text(jsonb_column) ILIKE '%val%'
Run Code Online (Sandbox Code Playgroud)

例如,考虑以下数据:

SELECT '{"col1": "somevalue", "col2": 5.5, "col3": 2016-01-01, "col4": "othervalue", "col5": "yet_another_value"}'::JSONB
Run Code Online (Sandbox Code Playgroud)

当需要%val%在列中包含不同键配置的记录中搜索模式时,您将如何优化这样的查询?是否有更好的替代方法来将每个键值对提取为文本并执行 ILIKE/POSIX 搜索?

主要是,我正在寻找一种不同的替代方法来将整个 jsonb 字段解压缩到单独的键行中,它们的值为 text

postgresql json postgresql-9.5

3
推荐指数
1
解决办法
2465
查看次数

索引条件lower(f) LIKE '%foo%'

如何使用非锚定搜索模式索引以下语句

SELECT somefield
FROM sometable 
WHERE lower(somefield2) like '%foo%';
Run Code Online (Sandbox Code Playgroud)

有些行有超过 2k 字节。

postgresql index postgresql-extensions

-1
推荐指数
1
解决办法
201
查看次数