WEB开发网
开发学院数据库Oracle Oracle9i的全文检索技术 阅读

Oracle9i的全文检索技术

 2006-08-06 12:00:52 来源:WEB开发网   
核心提示: SELECT SCORE(1) title from news WHERE CONTAINS(text, 'about(politics)', 1) > 0;6 显示满足查询条件的文档通常,通过使用Oracle Text查询应用程序,Oracle9i的全文检索技术(7

SELECT SCORE(1) title from news WHERE CONTAINS(text, 'about(politics)', 1) > 0;

6 显示满足查询条件的文档

通常,通过使用Oracle Text查询应用程序,用户可查看查询所返回的文档。用户从命中列表中选择一个文档,然后应用程序以某种形式显示该文档。通过Oracle Text,可以用不同的方式再现文档。例如,可以通过突出显示查询词来显示文档。突出显示的查询词可以是相关词查询中的词,也可以是英文 ABOUT 查询中的主题词。

以下是关于输出效果和用于每个输出效果的过程的信息:

突出显示的文档,纯文本格式版本(CTX_DOC.MARKUP)

突出显示的文档,HTML版本(CTX_DOC.MARKUP)

突出显示纯文本格式版本的偏移量信息(CTX_DOC.HIGHLIGHT)

突出显示HTML 版本的偏移量信息(CTX_DOC.HIGHLIGHT)

纯文本格式版本,无突出显示(CTX_DOC.FILTER)

HTML版本文档,无突出显示(CTX_DOC.FILTER)

7 索引维护

索引建好后,如果表中的数据发生变化,比如增加或修改了记录,怎么办?由于对表所发生的任何DML语句,都不会自动修改索引,因此,必须定时同步(sync)和优化(optimize)索引,以正确反映数据的变化。

在索引建好后,可以在该用户下查到Oracle自动产生了以下几个表:(假设索引名为myindex):

DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N

其中以I表最重要,可以查询一下该表:

select token_text, token_count from DR$ myindex $I where rownum<=20;

查询结果在此省略。可以看到,该表中保存的其实就是Oracle 分析你的文档后,生成的term记录在这里,包括term出现的位置、次数、hash值等。当文档的内容改变后,可以想见这个I表的内容也应该相应改变,才能保证Oracle在做全文检索时正确检索到内容(因为所谓全文检索,其实核心就是查询这个表)。那么如何维护该表的内容,不能每次数据改变都重新建立索引,这就要用到sync 和 optimize了。

上一页  2 3 4 5 6 7 8  下一页

Tags:Oraclei 全文检索 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接