对 tsvector 中的每个元素使用 Levenshtein 函数?

2023-12-14

我正在尝试使用 Postgres 创建模糊搜索,并一直使用 django-watson 作为基本搜索引擎来工作。

我有一个名为 search_tsv 的字段,它是一个 tsvector,其中包含我要搜索的模型的所有字段值。

我想使用 Levenshtein 函数,它完全可以在文本字段上实现我想要的功能。但是,我真的不知道如何在 tsvector 的每个单独元素上运行它。

有没有办法做到这一点?


考虑扩展pg_trgm代替levenshtein()。当有 GiST 索引支持时,它的速度要快几个数量级PostgreSQL 9.1 或更高版本中的 KNN 功能.

每个数据库安装一次扩展:

CREATE EXTENSION pg_trgm;

并使用<-> or %操作员。几个相关的答案已经发布在SO上,搜索pg_trgm [PostgreSQL] ...


狂野地拍摄你可能想要的东西:

WITH x AS (
    SELECT unnest(string_to_array(trim(strip(
      'fat:2,4 cat:3 rat:5A'::tsvector)::text, ''''), ''' ''')) AS val
    )                                    -- provide ts_vector, extract strings
    , y AS( SELECT 'brat'::text AS term) -- provide term to match
SELECT val, term
      ,(val <-> term) AS trg_dist        -- distance operator
      ,levenshtein(val, term) AS lev_dist
FROM   x, y;

Returns:

 val | term | trg_dist | lev_dist
-----+------+----------+----------
 cat | brat |    0.875 |        2
 fat | brat |    0.875 |        2
 rat | brat | 0.714286 |        1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 tsvector 中的每个元素使用 Levenshtein 函数? 的相关文章

随机推荐

  • 要读取Excel,我们可以使用Spring Batch吗?

    我想知道是否可以使用春季批次 以便读取 Excel 文件并将其保存在数据库中 remark Excel 文件的内容每 2 小时更改一次 如果 Spring Batch 无法实现 我还可以使用什么其他解决方案 去看看Excel 的 sprin
  • Xcode 3.2.6 和 4 链接器错误 ld:bad codegen, 指针 diff in ... 到全局弱符号

    我在 Xcode 3 2 6 和 Xcode 4 中遇到非常奇怪的错误 Xcode 3 2 5 在我的项目中没有错误 默认隐藏符号选项设置为 YES 这些链接错误与模板类内的静态成员 指针 有关 有什么想法 要检查的编译器 链接器键吗 这与
  • 为什么使用“is”表达式的测试比使用runtimeType的测试更稳定?

    在 dart 游览页面上 https dart dev guides language language tour getting an objects type 这些有一个声明 用 is 表达式测试变量类型更稳定 为什么会这样呢 An i
  • 不同角色的不同API功能

    我有asp net core 2 1的API 基于声明的身份验证 是否可以将这两个api函数合二为一 Authorize Roles Admin HttpPost delete public IActionResult Delete Fro
  • XmlSerializer ,base64 编码 String 成员

    考虑一个简单的案例 public class Test public String myString 有什么方法可以告诉 XmlSerializer 在序列化时对 myString 进行 base64 编码吗 您可以简单地将其设置为byte
  • 反应 set(a) 和 set(a => a) 的区别

    case1和case2有什么区别 const a setA useState 0 setA a 1 case 1 setA a gt a 1 case 2 setA a 1 将从以下值更新a从当前外壳 setA a gt a 1 将从之前的
  • 如何在 Vim 中用编号标签替换 CSV 列分隔符?

    我想用不同的值替换一系列管道字符 我该如何使用正则表达式来做到这一点 Example This is a sentence And this is the second one 最后结果 This new is new2 a new3 se
  • 循环回到代码中的特定点

    所以我正在编写一个小游戏 我试图做一些我不明白该怎么做的事情 我定义了一个函数 当代码不满足任何条件时 我希望它返回到另一行代码 但我不明白该怎么做 这是我正在处理的代码的一部分 print What s your favourite ty
  • 序列化与内爆

    您认为在 MySQL 数据库的记录中存储一些图像 ID 的更好方法是什么 这只是图像 ID 将用于从不同的库中获取图像 我是否会像 1 4 7 9 10 12 这样破坏记录中的 id 还是只是序列化数组并存储它 使用其中一种而不是另一种是否
  • 直到在 FluentWait 中无法应用 - java

    我之前有一个 Selenium 的辅助类 它的作用就像一个魅力 突然之间 这个问题出现了 我还附上了受影响功能的屏幕截图 直到 java util function Function 在 FluentWait 中无法应用 到 org ope
  • 如何将 QWebEngineProfile 设置为 QWebEngineView

    我想将不同的 QWebEngineProfiles 设置为不同的 QWebEngineViews 这意味着每个视图都有自己的 cookie 存储 我找不到任何有关它的文档 因此我们将不胜感激所有帮助 任何将独立 cookie 存储设置为独立
  • 在 GWT 中使用查询字符串

    我必须创建一个包含用户 ID 和电子邮件参数的动态 URL 它将直接指向我的 GWT 应用程序中的注册表单 我想设置和获取查询字符串中的参数 我已经提到tphttp code google com p gwt examples source
  • 无法使用java命令行打开PDF文件

    我正在尝试使用命令行参数从 java 打开 PDF 文件 String command cmd c start AcroRd32 exe dir 但是当文件自动打开时我收到错误 Windows cannot find acroRd32 ex
  • 线程访问另一个线程的堆栈

    我的想法是否正确 线程可以访问另一个线程堆栈中存在的变量 这是假设实例化堆栈变量的函数尚未返回 我想我在某处读到线程应该只共享堆内存 但我现在怀疑这是否正确 这是在 C 中使用 POSIX pthreads 严格来说 从提供线程支持 但接口
  • 什么是 XAML 在未处理的异常和 app.g.i.cs 文件上生成的中断

    我是 Windows 应用程序开发新手 我正在尝试使用 x64 平台在本地计算机上执行解决方案 但每当我执行 Button Click 事件时 我都会收到此异常 if DEBUG DISABLE XAML GENERATED BREAK O
  • jQuery 添加的 div 上的 Google 地图 addDomListener 只能看到循环的最后一次迭代

    我有以下简单的脚本 var fruits new Array apple orange lemon fruit canvas append Mouse over these fruits for var i 0 i lt fruits le
  • maven-cxf-codegen-plugin 使用 Jaxb 绑定为所有生成的类添加继承

    我正在使用 Apache CXF 的 cxf codegen plugin 将 wsdl 转换为 java 对象 我指定了一个绑定文件来添加额外的 jaxb 处理 我希望所有这些文件都从接口继承 或扩展抽象类 我的问题是 虽然我可以使用一个
  • 基于 Leaflet 和 AngularJS 的地图未正确加载

    我的基于 Leaflet 和 AngularJS 的地图无法正确加载 我不知道发生了什么 但地图图块没有按应有的方式布局 这是底图 这是我的代码 function setMapPosition scope center lat 51 505
  • 在shinyApp中使用R text2vec包和LDAvis的LDA主题模型

    以下是使用 R text2vec 包进行 LDA 主题建模的代码 library text2vec tokens docs text gt docs text a colection of text documents word token
  • 对 tsvector 中的每个元素使用 Levenshtein 函数?

    我正在尝试使用 Postgres 创建模糊搜索 并一直使用 django watson 作为基本搜索引擎来工作 我有一个名为 search tsv 的字段 它是一个 tsvector 其中包含我要搜索的模型的所有字段值 我想使用 Leven