问题标签 [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.
ruby-on-rails - Postgres 全文搜索同义词和近词
我有一个产品数据库,我使用 pg_search Gem 进行全文搜索。查询看起来像这样:
现在,这个搜索的一个显着问题是购买这个词。我们可以将购买、获取、获得作为同义词。对于“表”这个词。我们可以在附近有椅子。当有人搜索其中任何一个时,我需要在产品中搜索所有这些术语(同义词和邻近词)。
从我在网上阅读的内容来看,似乎我需要提供同义词词典作为输入,但我不知道该怎么做。我认为 postgresql 支持同义词搜索而无需开发人员输入任何同义词词典,并且 postgresql 提供的同义词词典可能没有所有的英语单词,但至少有一些基本的单词。开发者很难给出同义词词典
同义词参考链接: http: //shisaa.jp/postset/postgresql-full-text-search-part-2.html
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表明我需要构建一个文本搜索字典。有人知道如何拆分电子邮件地址吗?
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:
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 %>
我知道有些人可能会说这很奇怪,但方式书被保存了,这对我来说是合乎逻辑的。
任何人都可以尝试帮助我开始寻找合适的地方来实现这一点。我相信它非常简单,但很难让我明白。
干杯
ruby-on-rails - PostgreSQL:如何绕过 ts_vector 大小限制?
我正在使用pg_search gem
. 但是,其中一个表有一个Text
数据类型字段,它的内容恰好比平时大一点。
现在,当我需要tsvector column
为text
列设置 a 时,由于文本字段大小与 tsvector 大小的关系,我面临一些限制。
ERROR: string is too long for tsvector (5068741 bytes, max 1048575 bytes)
在触发器中Text
创建 tsvector 列以执行以下操作时,有什么方法可以确定跳过更大字段的条件:SQL
伪代码:
我发现没有答案的相关问题:
ruby-on-rails - 如何使用带有 pg_search 的运算符实现高级搜索?
我已经在我的Node
模型上实现了 PgSearch,如下所示:
在我的控制器中,我有这个:
理想情况下,我希望能够做的是让某人能够输入其中一个关联的文本表示(标志),并在该标志上设置搜索过滤器。
例如:“名称:Bouncing Ball”,搜索将发生在模型上调用的列name
上nodes
。Aka...它将查找具有名称的所有节点,Bouncing Ball
而不搜索其他列或模型甚至任何关联。
自然,我希望能够进行如下搜索:(
owner: John Brown
搜索所有者/用户 first_name 和 last_name 为 John Brown 的所有节点),comment: Manhattan
(搜索对Manhattan
副本中的文本有评论的所有节点,等等上。
如何使用 PgSearch 实现这一目标?
ruby-on-rails - 如何使用 pg_search 搜索对象的虚拟属性?
我有一个Node
已经设置好的类acts_as_taggable
,所以我可以添加user_tags
到任何节点。我的Node
模型上还有一个方法,可以User
在user_tag_list
. 这是一个插图:
所以,理想情况下,我想做的是允许用户搜索 sayGerry
并且它会Node.id = 85
从上面的例子中返回,因为Node.id = 85
有一个带有 first name 的用户标签Gerry
。
这是我现有pg_search
的Node
:
我觉得我应该能够使用 pg_search 的动态范围,但我不能完全理解它。
我将如何实现这一目标?
ruby-on-rails - 为什么 pg_search 前缀不能像我预期的那样工作?
这是我的pg_search
方法:
不像文档推荐prefix: true
的tsearch
那样。
但是,至少在一种特殊情况下,它不像我预期的那样工作。
我有一个Node
看起来像这样的对象:
请注意属性:cached_user_tag_list
包括电子邮件地址:danny@test.com
。
然而,当我进行以下搜索时,我得到的结果是:
请注意,它在查询中返回一个空结果,但它在查询中danny
返回正确的记录。dan
dann
鉴于字符串是danny@test.com
,不是danny
该字符串的前缀吗?
请注意,对于电子邮件地址abc@test.com
,搜索abc
会返回正确的结果,如下所示:
这可能是什么原因?
编辑 1
为了让事情变得更奇怪,我认为它@
可能会抛出前缀搜索,所以我通过简单地更改cached_user_tag_list
from danny@test.com
to的属性来测试它dannyk@test.com
。然后我搜索dannyk
它并返回了正确的结果,但是当我搜索danny
它时仍然返回[]
. 我不知道为什么。
ruby-on-rails - 使用 pg_search 搜索特殊字符
我在用着
pg_search
并尝试在标题中搜索特殊字符。
例如,我有两行包含此信息:
因此,当我搜索“#GT40”时,pg_search 的结果将是 1 和 2。但我想搜索精确的单词,所以结果将只有 2。
谢谢!
ruby-on-rails - 使 pg_search 返回前缀和后缀的结果
我正在使用 Rails 4.2 中的 pg_search gem 来搜索模型中的名称。我有以下内容:
如果我输入ad
or Ad
,我会得到带有 'Adnan' 和 'Adrian' 的结果。我想要的是,如果我输入,an
我也会得到相同的结果。或者,如果我输入dnan
,我会得到“Adnan”。pg_search 有可能吗?