使用Oracle Text在多个表中搜索连接

时间:2010-12-20 07:24:52

标签: oracle indexing full-text-search oracle10g oracle-text

(注意:此问题为cross-posted from ServerFault。)

我需要在我的oracle 10g数据库中的多个表中执行oracle文本搜索。表格具有以下结构:

Table1 (ID, col1, col2, ...)
SubTable1 (ID, Table1ID, col1, col2, ...)
SubTable2 (ID, Table1ID, col1, col2, ...)

Table1与SubTable1和Subtable2都有一对一的关系。

在运行时,客户端应用程序将提供搜索条件以跨三个表进行搜索。只有来自其中一个包含搜索词的表的记录应该连接在一起并返回给客户端应用程序。

场景(简化示例)

如果Table1中的记录在SubTable1中有10条记录,但10条中只有4条包含搜索条件,则只应将4行返回给客户端应用程序。同样适用于SubTable2。

问题

有没有办法以最少的更改执行此操作,理想情况下,只需对所有表进行一次contains搜索?或者我真的需要为每个表指定一个contains吗?

附加说明

  • 我跟着this尝试在表1中创建一个偏好User_Datastore的虚拟文本索引列。存储过程用于从XML格式的所有表中检索和格式化所有相关数据。这不起作用,因为将返回SubTable1中的所有10条记录(在场景中声明)。 Table1中的行与搜索项匹配,然后与Subtable1中的所有10行连接。

0 个答案:

没有答案