我们有一个包含两列的PostgreSQL 14数据库:一个jsonb和一个json列。第一个用于快速jsonpath查询,并有一个GIN索引。第二个只是保留原始JSON。我想使用文本片段在json中进行文本搜索。但是,像这样使用LIKE操作符相当慢(正如预期的那样):
and x."jsonb" ::text LIKE '%"test" : 10%'
当我想在JSON中的任何地方搜索这个时:
"test" : 10
看起来使用jsonpath在没有正则表达式的情况下实现全文搜索并不容易,正则表达式也很慢,我并不是真的想要全文搜索,也不是真的想要与JSON中的特定键进行比较。
做这样一个查询最快的方法是什么?当然我仍然可以限制搜索条目的数量与日期,但它会很好有一些快得多。
1条答案
按热度按时间mfuanj7w1#
只需构建正确的索引。