Запрос должен выглядеть следующим образом:
select score(1)
from tbl
where contains(Paragraph, 'Near (coronavirus, death),20,false)
WITHIN SENTENCE',1) > 0
;
То есть - используйте оператор WITHIN
.
Обратите внимание, что вы должны указать индексу, чтобы он сначала распознал предложения. То есть: если вы создали индекс с оператором, подобным следующему:
create index ctxidx on tbl(Paragraph)
indextype is ctxsys.context
-- parameters(' ... ')
;
, где parameters
(если вы использовали это предложение) ничего не говорят о «предложениях», вы получите ошибку если вы попробуете запрос выше - что-то вроде
DRG-10837: section sentence does not exist
Сначала вам нужно будет определить «специальные» секции для предложений:
begin
ctx_ddl.create_section_group('my_section_group', 'AUTO_SECTION_GROUP');
ctx_ddl.add_special_section('my_section_group', 'SENTENCE');
end;
/
С этим в руке:
drop index ctxidx;
create index ctxidx on tbl(Paragraph)
indextype is ctxsys.context
parameters ('section group my_section_group')
;
Теперь вы готовы успешно выполнить запрос в верхней части этого ответа.