我有一个应用程序将
XML作为
XMLType存储在Oracle表中.我想对该数据进行全文搜索. Oracle文档(
Full-Text Search Over XML Data)建议使用包含sql函数,该函数要求使用上下文索引对数据建立索引.麻烦的是,上下文索引似乎是
asynchronous,这不符合我需要能够在添加数据后立即搜索数据的用例.
我可以以某种方式使该索引同步吗?如果没有,我应该使用什么其他技术来对XMLType进行全文搜索?
解决方法
它不能成为事务性的(即它不会更新索引,以便更改对事务中的后续语句可见).您可以做的最好是在提交时更新它(SYNC ON COMMIT),如下所示:
create index your_table_x on your_table(your_column) indextype is ctxsys.context parameters ('sync (on commit)');
文本索引是复杂的事情,如果你能够实现一个事务性/ ACID兼容的文本索引(也就是说,事务A插入文档并在那个事务的索引中可见,并且在提交之前对事务B不可见),我会感到惊讶.