regexp_like mirrors 包含 near

regexp_like that mirrors contains near

我正在尝试通过使用 regexp_like 来加快使用 Contains Near 的查询。 运行 的初始 Contains Near 查询大约需要 45 分钟。 Clob 列包含大量 "documents" 并且已编入域索引。

初始查询:

SELECT column1
FROM TEST
WHERE CONTAINS(column1,'{NEAR(quick,fox, lazy), 3, FALSE}')>0;

建议查询:

SELECT column1
FROM TEST
WHERE REGEXP_LIKE(column1, '(\b(quick|fox|lazy)(?:\W+\w+){1,6}?\W(quick|fox|lazy)(?:\W+\w+){1,}?\W(quick|fox|lazy)\b)','i')

我从这里得到了原始的正则表达式语法: https://www.regular-expressions.info/near.html.

问题: 我让正则表达式代码在 html https://www.regextester.com 中工作,但是当我将它放入 Oracle 中时它找不到任何东西。我的语法有什么问题?我想不通。 Oracle 是否以不同方式处理 REGEXP?

亚历克斯,你完全正确。不过,我看不出如何 select 你的答案是正确的。

我的问题显然是我使用了 Oracle 无法识别的正则表达式参数。因此,尽管它在 https://www.regextester.com 上有效,但在 Oracle 中却无法正常工作,因为我使用的大部分内容在 Oracle 中都无法与正则表达式一起使用。我真的认为 Oracle 应该扩展其识别的正则表达式代码。这真的很令人沮丧。