问题标签 [unaccent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7358 浏览

postgresql - 在 Ubuntu 上找不到适用于 Postgresql 8.4 的 PGXS

我正在尝试在我的 Ubuntu 机器上安装 Postgresql 8.4 的 contrib/unaccent 包。但是当我输入 make 时收到错误消息:

/usr/lib/postgresql/8.4/lib/pgxs/src/makefiles/pgxs.mk:没有这样的文件或目录

显然 PGXS 是 Postgresql 安装扩展的基础设施,但我在我的 ubuntu 机器上根本找不到文件 pgxs.mk。

跟随互联网上的一些线索,我尝试安装 libpq-dev。尽管如此,即使在安装 libpq-dev 之后,我也找不到任何 pgxs.mk。

真正令人沮丧的是,我什至在 Internet 上的任何地方都找不到 pgxs.mk 的示例。如何安装 PGXS 基础架构?

0 投票
5 回答
14178 浏览

ruby-on-rails - Heroku 上 Rails 3.1 中 Postgres 口音不敏感的 LIKE 搜索

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

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

这样无论口音如何,结果都匹配?(例如地铁 = 地铁)。因为我使用的是utf8,所以不能使用“to_ascii”。生产在 Heroku 上运行。

0 投票
2 回答
23584 浏览

postgresql - 在 PostgreSQL 上创建非重音扩展时出错

我正在尝试将 PostgreSQL 配置为在我的 rails 应用程序中使用全文搜索,如该Railscast中所述。

我正在使用使用with安装的全新Ubuntu 12.04服务器。PostgreSQL 9.1.5apt-getppa:pitti/postgresqlprecise

尝试运行迁移时以及在 psql 控制台中与对等 postgres 用户尝试相同的命令时,我收到以下错误:

错误:无法打开扩展控制文件“/usr/share/postgresql/9.1/extension/unaccent.control”:
没有这样的文件或目录

在我运行的本地机器中,Ubuntu 10.04 desktop我使用相同的存储库 ( natty),它运行良好。

任何见解将不胜感激。

0 投票
2 回答
852 浏览

sql - Postgresql 9.1 的非重音扩展返回空行

我在 postgresql 数据库上创建了扩展名“unaccent”,但是当我使用“unaccent”运行选择时,它总是返回 1 行但有一个空行。

根据文档预期:

当我跑步时:

表明:

0 投票
2 回答
2484 浏览

sql - 忽略 WHERE 子句中的特殊字符

我有一个表artists,其名称列中有一条值为“Miró”的记录。当我提出这个要求时:

我有一个结果,所以它有效。

现在,当我做这个请求时(没有特殊的ó):

我什么也没找到。我想忽略特殊字符。有没有办法做到这一点?
我有postgres 9.1.9。

0 投票
1 回答
403 浏览

postgresql - Grails / Gorm 和 Postgresql Unaccent

我有一个关于如何将 PostgreSQL 的非重音扩展与 Grails 一起使用的问题。

我有很多法语描述,而 PostgreSQL 对口音不敏感。我安装了 unaccent 扩展,它在 PgAdmin III 上运行良好。

如何配置 Grails 和/或 PostgreSQL 以在我的控制器中使用 unaccent?

这是我的域:

例如,我可以使用 GORM “翻译”下一个查询吗?

谢谢阅读

0 投票
1 回答
878 浏览

sql - 在 tsvector 触发器中使用 unaccent

我想在我的 tsvector 列中使用 postgresql 的 unaccent contrib 包。我已经使用 create extension unaccent 成功安装了该软件包,并检查了它是否有效。我设置了一个触发器来自动更新 tsvector 列,

然后使用以下命令在所有现有行上设置 tsv_name 列

我认为我可以通过在上面的代码中简单地将 name 替换为 unaccent(name) 来合并 unaccent 包,但这会在创建触发器代码中引发语法错误。如何解决此问题以确保 tsvector 列使用非重音字符?

0 投票
1 回答
4804 浏览

sql - unaccent() 防止在 Postgres 中使用索引

我想从导入 PostgreSQL 9.3.5 的 OpenStreetMap 数据库中检索具有给定名称的方式,操作系统是 Win7 64 位。为了有点容错性,我使用 Postgres 的 unaccent 扩展。

我的查询如下所示:

查询计划:

奇怪的是,这个查询使用顺序扫描方式,尽管索引存在于lower(tags->'name')

一旦我从查询中删除 unaccent,Postgres 就会使用索引:

查询计划:

为什么 unaccent 会阻止 Postgres 使用索引?在我看来,这没有意义,因为在执行实际查询之前,应该已经完全知道 unaccent 的结果(删除变音符号等)。所以 Postgres 应该可以使用索引。使用 unaccent 时如何避免 seq 扫描?

0 投票
1 回答
1694 浏览

postgresql - Postgres 和非重音扩展默认目录

我需要在我的 postgres 数据库中添加一个名为 unaccent 的扩展。

Postgres 版本PostgreSQL version: 9.3rc1

我在安装扩展程序时遇到问题。

我做了什么:

sudo apt-get install postgresql-contrib-9.1

我知道它是 9.1 版本,但是在我的测试服务器上,我对 postgres 9.4 版本做了同样的事情,一切正常。

当我在生产服务器上运行脚本时

CREATE EXTENSION 非重音模式 pg_catalog;

它给我一个错误:

无法打开扩展控制文件“/usr/local/pgsql/share/extension/unaccent.control”:目录或文件不存在

在这种情况下有什么问题?扩展程序已安装到“错误”(我猜)目录/usr/share/postgresql/9.1/extension中,而不是usr/local/pgsql/share/extension

有没有机会让 postgres 查看其他目录而不是扩展的默认目录?

0 投票
1 回答
1451 浏览

ruby-on-rails - postgres 非重音函数与 RoR 音译

在我们的 RoR 项目中,我们使用 postgres unaccent 函数来检索模型名称属性之一的非重音版本。name 属性可以包含来自各种语言的任何重音字符。然后我们将其保存为 unaccent_name 属性。我不喜欢这个解决方案,因为我们需要确保安装和访问 postgres 扩展 UNACCENT(在测试、移动/清理数据库等时)。

在 RoR 中有 ActiveSupport::Inflector.transliterate 方法,它应该做一些非常相似的事情。

我发现它主要以相同的方式翻译重音字符,但也有一些区别:

相同的结果:

不同的结果:

我知道这两种方法都可以接受带有自定义字母替换的字典,但我只对它们的一般/默认用法感兴趣。

音译方法的主要目的和postgres unaccent函数一样吗?我们可以用它来代替吗?