PATH_SECTION_GROUP 的功能和AUTO_SECTION_GROUP十分类似,PATH_SECTION_GROUP比AUTO_SECTION_GROUP增加了 HASPATH和INPATH操作,但是PATH_SECTION_GROUP不支持ADD_STOP_SECTION属性。
下面通过一个例子简单描述一下PATH_SECTION_GROUP以及HASPATH和INPATH功能。
SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));
表已创建。
SQL> INSERT INTO T VALUES (1, '
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ');
已创建 1 行。
SQL> COMMIT;
提交完成。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('SECTION GROUP CTXSYS.PATH_SECTION_GROUP');
索引已创建。
AUTO_SECTION_GROUP支持的自动节组属性,PATH_SECTION_GROUP同样支持:
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'COLLECTOR') > 0;
ID
----------
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'COLLECTOR WITHIN Display') > 0;
ID
----------
1
PATH_SECTION_GROUP还支持HASPATH和INPATH操作:
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'HASPATH(Display)') > 0;
未选定行
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'HASPATH(TargetMetadata/Display)') > 0;
ID
----------
1
SQL> SELECT ID FROM T
2 WHERE CONTAINS(DOCS, 'HASPATH(TargetMetadata/Display/Label="CSA COLLECTOR")') > 0;
ID
----------
1
HASPATH 操作用来判断指定的路径在文档中是否存在。上面的三个查询中,第一个没有查询到内容是因为Display节组不是文档中最顶层的节组。第二个查询到内容是 由于TargetMetadata是最顶层的节组,且TargetMetadata/Display路径存在。第三个查询展示了对于指定路径下的指定内容 是否存在的查询。
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'COLLECTOR INPATH(TargetMetadata)') > 0;
ID
----------
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'COLLECTOR INPATH(Display)') > 0;
未选定行
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'COLLECTOR INPATH(//Display)') > 0;
ID
----------
1
INPATH操作和WITHIN操作比较类似,都是在指定的节组中进行查询。
由于Display不是顶层的节组,因此上面的第二个查询没有返回结果,而需要采用第三个查询。
SQL> SELECT ID FROM T
2 WHERE CONTAINS(DOCS, 'RECVFILEDIR INPATH(//InstanceProperty/@NAME)') > 0;
ID
----------
1
SQL> SELECT ID FROM T
2 WHERE CONTAINS(DOCS, 'RECEIVE INPATH(//Display[ShortName="Receive File Directory"])') > 0;
ID
----------
1
SQL> SELECT ID FROM T
2 WHERE CONTAINS(DOCS, 'RECEIVE INPATH(//InstanceProperties[.//ShortName="Receive File Directory"])') > 0;
ID
----------
1
最后列出了几个使用INPATH操作的复杂的查询,这里就不再一一解释了。通过上面的几个例子可以看出,使用INPATH操作比使用WITHIN更加的灵活。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/271283/viewspace-1022453/ ,如需转载,请注明出处,否则将追究法律责任。