我有一个将 XML 存储在 Oracle 表中的应用程序 XMLType
.我想对该数据进行全文搜索。 Oracle 文档,位于 Full-Text Search Over XML Data , 建议使用 contains
SQL 函数,它需要使用 context
索引数据指数。麻烦的是,似乎context
索引是 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 不可见),我会感到惊讶。
关于Oracle:如何对 XMLType 进行全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6338243/