问题标签 [trigram]

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 回答
1086 浏览

postgresql - 如何使用日期列创建 pg_trgm 复合索引

这里 col1 是数据类型varchar,日期是timestamp with time zone数据类型。所以创建了扩展CREATE EXTENSION pg_trgm

然后尝试了以下索引并得到了错误:

1:问题:错误:操作员类“gin_trgm_ops”不接受带时区的数据类型时间戳

2:问题:错误:访问方法“gin”不存在操作员类“text_pattern_ops”

如何为上述查询创建索引以加快执行速度?任何帮助将不胜感激!

编辑:所以这在语法上有效,但不会加快查询速度:

0 投票
2 回答
4777 浏览

python - 来自 ManyToManyField 的 Django 最大相似度(TrigramSimilarity)

我必须实现一个容错的搜索功能。
目前,我有以下情况:

楷模:

询问:

示例数据:

插图:

插图有标签:

标签:

当我使用 运行查询时"Animal", for 的相似性"Dog"应该高于 for "Cat",因为它是完美匹配的。
不幸的是,这两个标签以某种方式被考虑在一起。
目前,它看起来像是将标签连接在一个字符串中,然后检查相似性:

但我想调整它,使Illustration实例名称与其标签之间的相似度最高:


Edit1:我正在尝试查询所有插图,其中标题或其中一个标签的相似度大于 X。

编辑2:附加示例:

全文 = '动物'

TrigramSimilarity('Animal Brown', fulltext) => x TrigramSimilarity('Animals', fulltext) => y

其中 x < y

但我想要的其实是

TrigramSimilarity(Max(['Animal', 'Brown]), fulltext) => x (Similarity to Animal) TrigramSimilarity('Animals', fulltext) => y

其中 x > y

0 投票
1 回答
1038 浏览

django - Django Trigram:在 Django 中创建 gin 索引并搜索建议的单词

我有带有标题和描述字段的模型。

我想为标题和描述字段中的所有单词创建一个 GIN 索引

因此,我使用 SQL 以下列方式执行此操作:

STEP1:使用简单的配置创建一个包含标题和描述中所有单词的表

STEP2:创建 GIN 索引

第三步:搜索

如何在 DJANGO 中执行此操作,而且我必须不断更新 GIN 索引

0 投票
1 回答
138 浏览

postgresql - trigram 和 ILIKE 同时

我有 GIN 索引列,使用gin_trgm_ops.

我正在mad使用相似性搜索该术语:

我得到:

但它遗漏了一些词,例如srimad.

我想选择前 5 个 where ILIKE '%mad%'or'mad%'然后也是前五个 trigrams 并组合结果。

实施解决方案后:

我的 SQL 查询和解释:

还有关于 UNION 的问题:

第一个查询项目:

第二个查询项:

我想要结果为:

但我按以下顺序排列:

0 投票
1 回答
469 浏览

postgresql - 带有 unaccent 和 pg_trgm 的多列索引(匹配脏数据)

我有一个包含客户数据的表,它有 1200 万多条记录。我想根据几个字段来查询它,例如:first_name、last_name、birth_place。但是数据真的很脏,所以我想要甚至不完全匹配的记录。我为此使用了 unaccent 和 pg_trgm 模块。

我按照这个问题能够在索引中使用 unaccent,因此f_unaccent()而不是unaccent()在查询中。

指数:

选择:

当我对其运行分析时,它会进行顺序扫描。它不使用索引。我知道第一个选择在整个桌子上运行,所以也许很好。我使用的是<->,而不是similarity(text, text)函数,因为我什至想要一些字段相似度为 0 的记录,相似度之和是我关心的。

在真实数据上,这个查询(有 6 个字段,而不是 3 个)大约需要 12 分钟(没有索引,我没有创建它们,因为我在测试数据上看到它们甚至没有被使用......)

我怎样才能使这个查询运行得更快?谢谢

0 投票
1 回答
207 浏览

postgresql - postgresql : 读取 GIN 索引内容

我想阅读应该使用我的 GIN 索引创建的三元组列表,但我似乎无法在任何地方找到该命令:我尝试了\di+,\dv+\dm+每个没有+. 没有任何回报。

我是否误解了什么或我的索引是空的?它显示 16ko 尺寸,但据我所知,它可能是空的标准尺寸。

0 投票
0 回答
840 浏览

c++ - 如何在 C++ 中创建一系列三元组,其中每个后续三元组从第一个字母的第二个字母开始?

我已经为此工作了一段时间,但我一直无法解决这个问题。本质上,如果要给用户一个“.txt”文件,其中写入了以下内容"tHe@doG#wENt&uP$tHE!hiLL!",则最终结果需要如下所示:

我可以继续,但我确信这是不言自明的。我一直用来尝试完成此操作的代码如下所示。

}

这与三元组的频率分析(我稍后将使用的向量)有关,我觉得有一种方法可以减少我拥有的条件句的数量,我只是不知道如何。任何帮助将不胜感激!

0 投票
2 回答
2322 浏览

postgresql - 全文搜索中的模糊搜索

我正在使用 postgresql 进行全文搜索,我发现如果有拼写错误,用户将不会收到结果。我想同时使用模糊搜索和全文搜索。例如,我无法结合三元组索引和全文搜索。

在 Postgres 全文搜索中处理拼写错误的单词的最佳方法是什么?

0 投票
1 回答
246 浏览

postgresql - 将查询的部分内容与 trigram 索引匹配

我有一个表格,events其中每个事件都有一个titledescription。搜索应搜索两列:

标题:Dick(ens) 和 Jane
描述:每周见面讨论经典书籍!

鉴于上述情况,我想要一个book club匹配的查询。

我的索引:

我的查询:

我认为问题在于我从根本上误解了索引的工作原理,因此它试图将整个字符串book club与各种三字母组合匹配,但我不确定如何解决这个问题。

0 投票
1 回答
88 浏览

r - 在三元组列表中查找动词(部分匹配?)

我知道有很多关于部分匹配的问题,我已经阅读了尽可能多的内容,但我仍然没有设法使用 R 提取我需要的内容。

简而言之,我的问题是我有一个包含超过一百万行西班牙三元组的数据集,我只想找到那些有动词的数据集。为了使这更容易,我在西班牙语中添加了 500 个最常见的动词,以便尝试将它们与三元组相匹配。

我有一个这样的数据集:

第三列(“动词”)中的动词是不定式,我想将它们与第一列(“三元组”)中的动词部分匹配。我认为在这种情况下,能够使用 for 循环来遍历 500 个我想要部分匹配的超过一百万个三元组的动词是理想的。

所以在这种情况下:“gustar”应该部分匹配“no me gusta”,任何东西都不应该匹配像“el caso que”这样的无动词三元组。

我真的希望这是有道理的,我以前从未使用过这些数据量,而且我对正则表达式太陌生,无法自己真正解决这个问题。