regexp_like, что зеркала содержит около - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь ускорить запрос, который использует Contains Near, с запросом, который использует regexp_like.Начальный запрос Contains Near занимает около 45 минут.Столбец Clob содержит большие «документы» и индексируется в домене.

Исходный запрос:

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, он ничего не находит.Что не так с моим синтаксисом?Я не могу понять это.Оракул обрабатывает REGEXP по-другому?

1 Ответ

0 голосов
/ 26 ноября 2018

Алекс, ты был совершенно прав.Я не вижу, как правильно выбрать ваш ответ.

Моя проблема заключалась в том, что я использовал параметры регулярного выражения, которые Oracle не распознает.Так что, хотя он работал на https://www.regextester.com,, он не работал в Oracle, потому что большая часть того, что я использовал, не распознается как пригодная для использования с регулярным выражением в Oracle.Я действительно думаю, что Oracle должен расширить свои регулярные выражения, которые он распозналЭто было действительно неприятно.

...