- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0 |
Oracle全文索引的查询模板功能可以对在CONTEXT索引上使用CATSEARCH语法,或者在CTXCAT索引上使用CONTAINS语法。
通过一个例子说明查询模板的使用:
SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));
表已创建。
SQL> INSERT INTO T VALUES (1, 'IT IS A EXAMPLE FOR QUERY TEMPLETE.');
已创建 1 行。
SQL> INSERT INTO T VALUES (2, 'USING THE TEMPLETE CONTAIN OPERATION CAN BE PERFORM ON CTXCAT INDEX.');
已创建 1 行。
SQL> INSERT INTO T VALUES (3, 'AND THE CATSEARCH OPERATION CAN BE PERFORM ON CONTENT INDEX.');
已创建 1 行。
SQL> COMMIT;
提交完成。
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT;
索引已创建。
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'TEMPLETE', 1) > 0;
ID
----------
2
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, '<QUERY>
2 <TEXTQUERY GRAMMAR="CTXCAT">
3 TEMPLETE
4 </TEXTQUERY>
5 <SCORE DATATYPE="INTEGER"/>
6 </QUERY>', 1) > 0;
ID
----------
2
1
上面这个给出了对于CONTEXT索引使用CATSEARCH语法的例子,不过这种用途的实际意义不大,不过下面的例子的实际意义就比较大了:
SQL> DROP INDEX IND_T_DOCS;
索引已丢弃。
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CTXCAT;
索引已创建。
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '$USE', NULL) > 0;
未选定行
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '<QUERY>
2 <TEXTQUERY GRAMMAR="CONTEXT">
3 $USE
4 </TEXTQUERY>
5 <SCORE DATATYPE="INTEGER"/>
6 </QUERY>', NULL) > 0;
ID
----------
2
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, ';((EXAMPLE, TEMPLETE), 3)', NULL) > 0;
未选定行
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, ';((EXAMPLE, TEMPLETE), 3)', NULL) > 0;
未选定行
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '<QUERY>
2 <TEXTQUERY GRAMMAR="CONTEXT">
3 ;((EXAMPLE, TEMPLETE), 3)</TEXTQUERY>
4 <SCORE DATATYPE="INTEGER"/>
5 </QUERY>', NULL) > 0;
ID
----------
1
CATSEARCH语法本身不支持ABOUT、STEM、FUZZY、NEAR等操作,但是使用了查询模板,这些本来CONTAINS语法才支持的操作都可以在CTXCAT索引上使用了。
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |