Oracle:如何对 XMLType 进行全文搜索?

ave*_*net 5 oracle full-text-search xmltype

我有一个应用程序将 XML 存储在 Oracle 表中作为XMLType. 我想对该数据进行全文搜索。Oracle 文档在Full-Text Search Over XML Data中建议使用containsSQL 函数,该函数要求使用索引对数据进行索引context。问题是context索引似乎是异步的,这不适合我需要能够在添加数据后立即搜索数据的用例。

我可以使该索引以某种方式同步吗?如果没有,我应该使用什么其他技术来对XMLType?

Gar*_*ers 5

它不能成为事务性的(即它不会更新索引,以便更改对事务中的后续语句可见)。您能做的最好的事情是在提交 ( SYNC ON COMMIT)时更新它,如下所示:

create index your_table_x
    on your_table(your_column)
    indextype is ctxsys.context
    parameters ('sync (on commit)');
Run Code Online (Sandbox Code Playgroud)

文本索引是复杂的东西,如果你能实现一个事务性/ACID 兼容的文本索引(即事务 A 插入文档并使那些文档在该事务的索引中可见,而在提交之前对事务 B 不可见),我会感到惊讶。