相关疑难解决方法(0)

PostgreSQL通配符LIKE用于任何单词列表

我有一个简单的~25个单词列表.我在PostgreSQL中有一个varchar字段,让我们说列表是['foo', 'bar', 'baz'].我想在我的表中找到任何包含这些单词的行.这会有效,但我想要更优雅的东西.

select *
from table
where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
Run Code Online (Sandbox Code Playgroud)

sql postgresql

140
推荐指数
3
解决办法
12万
查看次数

Postgres中LIKE和〜之间的区别

我被指示"不要打扰LIKE"并~改为使用.什么是错的LIKE又是怎样的~不同?

~在这种情况下是否有名称或者人们说"使用代字号运算符"?

regex sql postgresql syntax

56
推荐指数
6
解决办法
6万
查看次数

GiST和GIN指数之间的差异

我正在实现一个具有数据类型为的列的表,tsvector我试图了解哪个索引更适合使用?

GIN还是GiST?

通过这里查看postgres文档,我似乎得到了:

  • GiST更新和构建索引的速度更快,而且比杜松子酒更准确.

  • GIN更新和构建索引的速度较慢,但​​更准确.

好的,那么为什么有人想要杜松子酒的gist索引字段呢?如果要点可能会给你错误的结果?必须有一些优势(外部表现).

当我想要使用GIN和GiST时,有人可以用外行的方式解释吗?

postgresql indexing full-text-search

42
推荐指数
1
解决办法
2万
查看次数

如何使用Postgresql创建简单的模糊搜索?

我的基于RoR的网站上的搜索功能有点问题.我有很多产品和一些CODE.此代码可以是任何字符串,如"AB-123-lHdfj".现在我使用ILIKE运算符来查找产品:

Product.where("code ILIKE ?", "%" + params[:search] + "%")
Run Code Online (Sandbox Code Playgroud)

它工作正常,但找不到像"AB123-lHdfj"或"AB123lHdfj"这样的代码的产品.

我该怎么办?可能是postgresql有一些字符串规范化功能,还是其他一些方法来帮助我?:)

sql postgresql fuzzy-search ruby-on-rails

36
推荐指数
2
解决办法
3万
查看次数

更喜欢vs iLIKE

以下两个查询组件的性能如何比较?

更喜欢

... LOWER(description) LIKE '%abcde%' ...
Run Code Online (Sandbox Code Playgroud)

我喜欢

... description iLIKE '%abcde%' ...
Run Code Online (Sandbox Code Playgroud)

postgresql performance pattern-matching database-performance

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

快速找到与PostgreSQL相似的字符串

我需要在表中创建类似字符串的排名.

我有下表

create table names (
name character varying(255)
);
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用提供该功能的pg_trgm模块similarity,但我遇到了效率问题.我创建了一个像Postgres手册建议的索引:

CREATE INDEX trgm_idx ON names USING gist (name gist_trgm_ops);
Run Code Online (Sandbox Code Playgroud)

我正在执行以下查询:

select (similarity(n1.name, n2.name)) as sim, n1.name, n2.name
from names n1, names n2
where n1.name != n2.name and similarity(n1.name, n2.name) > .8
order by sim desc;
Run Code Online (Sandbox Code Playgroud)

查询有效,但是当你有数百个名字时,它确实很慢.此外,也许我忘了一点SQL,但我不明白为什么我不能使用条件and sim > .8没有得到"列sim不存在"错误.

我想要任何提示使查询更快.

sql postgresql text similarity postgresql-performance

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

在Rails 3/ActiveRecord中构建LIKE查询时逃避%%的正确方法

我想将url字段与url前缀(可能包含百分号)匹配,例如.where("url LIKE ?", "#{some_url}%").什么是最多的Rails方式?

sql ruby-on-rails ruby-on-rails-3 rails-activerecord

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

Heroku上的Rails 3.1中的Postgres重音不敏感LIKE搜索

如何在Rails中修改搜索查询的where/like条件:

find(:all, :conditions => ["lower(name) LIKE ?", "%#{search.downcase}%"])

无论重音如何,结果都是匹配的?(例如métro= metro).因为我使用的是utf8,所以我不能使用"to_ascii".生产正在Heroku上运行.

postgresql ruby-on-rails unaccent rails-postgresql

16
推荐指数
2
解决办法
1万
查看次数

CouchDB中的全文搜索

我有一个问题,希望得到你的回答:-)

因此,我使用geonames.org并将所有德国城市的数据导入所有地区.

如果我进入"汉堡",它会列出"汉堡中心,汉堡机场"等.该应用程序位于一个无法访问互联网的封闭网络中,因此我无法访问geonames.org Web服务并且必须导入数据.:(所有区域的城市都是自动完成的.所以每次击中都会导致XHR请求等等.

现在我的客户询问是否可以获得世界上的所有数据.最后,大约5.000.000行,有45.000.000个替代名称等.

Postgres每个查询需要大约3秒钟,这使得自动完成无法使用.

现在我想到了CouchDb,已经使用过了.我的问题:

我想发布"Ham",我希望CouchDB获取所有以"Ham"开头的文档.如果我进入"汉堡",我希望它能够返回汉堡,等等.

CouchDB是否适合它?您可以推荐哪些其他数据库以低延迟(可能是内存中)和数百万个数据集进行响应?数据集不会定期更改,而是相当静态!

postgresql indexing performance full-text-search couchdb

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

错误:子查询必须只返回一列

subquery must return only one column尝试运行以下查询时收到错误:

SELECT mat.mat as mat1, sum(stx.total ) as sumtotal1,
  (
    SELECT mat.mat  as mat, sum(stx.total)  as sumtotal
    FROM stx 
      LEFT JOIN mat ON stx.matid = mat.matid
      LEFT JOIN sale ON stx.saleid = sale.id
    WHERE stx.date BETWEEN '2013-05-01' AND '2013-08-31' 
      AND sale.userid LIKE 'A%'
    GROUP BY mat.mat
) AS MyField
FROM stx 
  LEFT JOIN mat ON stx.matid = mat.matid
  LEFT JOIN sale ON stx.saleid = sale.id
WHERE stx.date BETWEEN '2013-05-01' AND '2013-08-31'
  AND sale.userid …
Run Code Online (Sandbox Code Playgroud)

sql postgresql join left-join cross-join

12
推荐指数
1
解决办法
2万
查看次数