问题标签 [pg-search]

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 投票
0 回答
595 浏览

ruby-on-rails - Postgres 全文搜索同义词和近词

我有一个产品数据库,我使用 pg_search Gem 进行全文搜索。查询看起来像这样:

现在,这个搜索的一个显着问题是购买这个词。我们可以将购买、获取、获得作为同义词。对于“表”这个词。我们可以在附近有椅子。当有人搜索其中任何一个时,我需要在产品中搜索所有这些术语(同义词和邻近词)。

从我在网上阅读的内容来看,似乎我需要提供同义词词典作为输入,但我不知道该怎么做。我认为 postgresql 支持同义词搜索而无需开发人员输入任何同义词词典,并且 postgresql 提供的同义词词典可能没有所有的英语单词,但至少有一些基本的单词。开发者很难给出同义词词典

同义词参考链接: http: //shisaa.jp/postset/postgresql-full-text-search-part-2.html

0 投票
1 回答
679 浏览

ruby-on-rails-4 - pg_search 子字符串的电子邮件地址

我正在使用 pg_search 来 full_text_search 我的客户 d/b 的姓名和电子邮件地址。如果我搜索电子邮件地址的域部分,如何获得匹配?例如hotmail,返回所有带有hotmail 地址的客户。

到目前为止,我采取的步骤包括使用 trigram 搜索和为 trigram 搜索添加 psql 扩展。本文中的评论,PG full text search on rails using pg_search gem for substring表明我需要构建一个文本搜索字典。有人知道如何拆分电子邮件地址吗?

0 投票
1 回答
299 浏览

ruby-on-rails - PgSearch 1.0.0 throws ModelNotMultisearchable error when trying to rebuild from console

I've got an app with 4 different models which are multisearchable, however they were originally set up with a pg_search_scope; ie:

As you can see at one point I tried setting this up the multiserachable way.

Of late there are items we know should be returning that are NOT in the search results, and I thought I'd have to rebuild the pg_search_documents; however that's throwing an error:

I thought that it might be because of the setup as a pg_search_scope, so I set one class as above with the multisearch:multisearchable :against => [:title, :description] -- but even then I get rebuild problems.

I tried the manual way of deleting from the pg_search table and rebuilding but even THAT's throwing an error:

0 投票
1 回答
168 浏览

ruby-on-rails - 我可以从 user_id 获取 pg_search 的搜索结果吗?

我的书中有一个使用 pg_search 的模型,在搜索中我希望能够通过用户名搜索书籍。在我的 book.rb 模型中,我有以下内容:

上面的代码适用于我在书中的任何内容,但我需要做的是找到与该书关联的用户名。我的架构我将 user_id 附加到 books 表,我可以在我的视图和模型中使用以下内容获取该书的用户详细信息,@book_author = User.where("id = '#{@book.user_id}'")然后获取我刚刚做的名称<%= book.user.name %>我知道有些人可能会说这很奇怪,但方式书被保存了,这对我来说是合乎逻辑的。

任何人都可以尝试帮助我开始寻找合适的地方来实现这一点。我相信它非常简单,但很难让我明白。

干杯

0 投票
1 回答
1743 浏览

ruby-on-rails - PostgreSQL:如何绕过 ts_vector 大小限制?

我正在使用pg_search gem. 但是,其中一个表有一个Text数据类型字段,它的内容恰好比平时大一点。

现在,当我需要tsvector columntext列设置 a 时,由于文本字段大小与 tsvector 大小的关系,我面临一些限制。

ERROR: string is too long for tsvector (5068741 bytes, max 1048575 bytes)

在触发器中Text创建 tsvector 列以执行以下操作时,有什么方法可以确定跳过更大字段的条件:SQL

伪代码:

我发现没有答案的相关问题:

Postgresql - 将文本转换为 ts_vector

0 投票
1 回答
887 浏览

ruby-on-rails - 如何使用带有 pg_search 的运算符实现高级搜索?

我已经在我的Node模型上实现了 PgSearch,如下所示:

在我的控制器中,我有这个:

理想情况下,我希望能够做的是让某人能够输入其中一个关联的文本表示(标志),并在该标志上设置搜索过滤器。

例如:“名称:Bouncing Ball”,搜索将发生在模型上调用的列namenodes。Aka...它将查找具有名称的所有节点,Bouncing Ball而不搜索其他列或模型甚至任何关联。

自然,我希望能够进行如下搜索:( owner: John Brown搜索所有者/用户 first_name 和 last_name 为 John Brown 的所有节点),comment: Manhattan(搜索对Manhattan副本中的文本有评论的所有节点,等等上。

如何使用 PgSearch 实现这一目标?

0 投票
1 回答
458 浏览

ruby-on-rails - 如何使用 pg_search 搜索对象的虚拟属性?

我有一个Node已经设置好的类acts_as_taggable,所以我可以添加user_tags到任何节点。我的Node模型上还有一个方法,可以Useruser_tag_list. 这是一个插图:

所以,理想情况下,我想做的是允许用户搜索 sayGerry并且它会Node.id = 85从上面的例子中返回,因为Node.id = 85有一个带有 first name 的用户标签Gerry

这是我现有pg_searchNode

我觉得我应该能够使用 pg_search 的动态范围,但我不能完全理解它。

我将如何实现这一目标?

0 投票
1 回答
486 浏览

ruby-on-rails - 为什么 pg_search 前缀不能像我预期的那样工作?

这是我的pg_search方法:

不像文档推荐prefix: truetsearch那样。

但是,至少在一种特殊情况下,它不像我预期的那样工作。

我有一个Node看起来像这样的对象:

请注意属性:cached_user_tag_list包括电子邮件地址:danny@test.com

然而,当我进行以下搜索时,我得到的结果是:

请注意,它在查询中返回一个空结果,但它在查询中danny返回正确的记录。dandann

鉴于字符串是danny@test.com,不是danny该字符串的前缀吗?

请注意,对于电子邮件地址abc@test.com,搜索abc会返回正确的结果,如下所示:

这可能是什么原因?

编辑 1

为了让事情变得更奇怪,我认为它@可能会抛出前缀搜索,所以我通过简单地更改cached_user_tag_listfrom danny@test.comto的属性来测试它dannyk@test.com。然后我搜索dannyk它并返回了正确的结果,但是当我搜索danny它时仍然返回[]. 我不知道为什么。

0 投票
1 回答
554 浏览

ruby-on-rails - 使用 pg_search 搜索特殊字符

我在用着

pg_search

并尝试在标题中搜索特殊字符。

例如,我有两行包含此信息:

因此,当我搜索“#GT40”时,pg_search 的结果将是 1 和 2。但我想搜索精确的单词,所以结果将只有 2。

谢谢!

0 投票
1 回答
381 浏览

ruby-on-rails - 使 pg_search 返回前缀和后缀的结果

我正在使用 Rails 4.2 中的 pg_search gem 来搜索模型中的名称。我有以下内容:

如果我输入ador Ad,我会得到带有 'Adnan' 和 'Adrian' 的结果。我想要的是,如果我输入,an我也会得到相同的结果。或者,如果我输入dnan,我会得到“Adnan”。pg_search 有可能吗?