oracle - 我可以将 contain 和 near 与 clob 一起使用吗?需要加快查询速度

oracle - can I use contain and near with a clob? Need to speed up query

我们有一个查询需要 48 分钟才能 运行 搜索 clob。查询的编写就好像它不是 clob 列一样,并使用 contains 和 near。搜索彼此之间一定单词距离内的 3 个单词很重要。我需要加快速度并想在 clob 上做一个索引,但不知道这是否可行并且不完全理解如何去做。我从 Tom Burleson 那里找到了这个 http://www.dba-oracle.com/t_clob_search_query.htm OR https://asktom.oracle.com/pls/apex/asktom.search?tag=oracle-text-contains-search-with-near-is-very-slow ,但无法弄清楚如何使用 contains 和 near 来搜索彼此相距一定距离的 3 个词。

当前脚本:

SELECT clob_field 
FROM clob_table 
WHERE contains(clob_field,'NEAR (((QUICK),(FOX),(LAZY)),5)') > 0;

想要使用这样的东西,如果它像索引一样:

SELECT clob_field
FROM clob_table
WHERE contains(dbms_lob.substr(clob_field,'near(((QUICK),(FOX),(LAZY)),5)')) > 0;

如果没有,我需要做索引,但我不太明白如何使用CTXCAT和CONTEXT(https://docs.oracle.com/cd/A91202_01/901_doc/text.901/a90122/ind4.htm)。我也不喜欢我在这里读到的内容,它说如果使用 CTXCAT 来索引 clob,则必须使用 CONTEXT 或类似的东西。它不会影响在此字段上完成的其他查询。

提前致谢!

除非全局索引,否则 Contains 将不起作用,因此我必须对该字段进行索引,然后才能使原始查询正常工作。