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

标签 oracle full-text-search xmltype

我有一个将 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/

相关文章:

sql - 多栏评论

SQL 将同一行中的两个值分组

postgresql - 从 tsvector 列中检索最常见的关键字

java - 在 XML 文件中搜索字符串

lucene - lucene中多值字段的范围查询

xml - 如何将 XML 数据存储到 Oracle 表中

java - 如何管理H2数据库上的XmlType

oracle - 如何确保 PL/SQL 程序在编译时启用了优化?

oracle11gr2 - 将超过 4KB 的 XMLTYPE 列数据插入 Oracle 11g 数据库时出错

mysql - 开发人员应该学习哪些基本的 dba 技能?