全文检索是将存储于数据库中整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有关章、节、段、句、词等信息,也就是说类似于给整本书的每个字词添加一个标签,也可以进行各种统计和分析。自从全文检索出现后,大大提高了用户对于文本文件等大容量文件格式的检索速度,极大的提高了用户工作的效率。
大家都知道,全文检索主要针对文档、附件等大数据量格式的格式的文本进行检索,为了提高系统的检索效率,通常最简单且最有效的方法就是创建索引。所以,在执行全文检索之前,必须创建索引。 FileNet P8可以通过 FileNet Content Search Engine 或 IBM Content Search Service创建索引。想了解如何创建索引,请点击这里。
在进行全文检索之前,必须在 P8 Content Engine中启动 Class 和 Property的 CBR,这样 P8 Content Search Engine会自动检测 Content Engine中 ObjectStore中的 Class实例和 Property,并在后台自动开始索引 。
FileNet 的全文检索有两种方式: CONTRAINS和 FREETEXXT。两者的区别是 FREETEXXT只能查询所有的 Content和 CBR-enabled的属性,而 CONTRAINS可以对单独一个属性进行查询。当查询范围比较广,而对系统性能要求不高的情况下,经常使用 FREETEXT。当强调全文检索的性能时,常使用 CONTRAINS进行全文检索 。
下面以 CONSTRAINS为例,列举经常遇到的 CBR语句 。
查找文档内容或者字符型属性包含 keyword关键字的所有文档 :
- SELECT d.This, d.DocumentTitle, v.* FROM Document d INNER JOIN
- VerityContentSearch v ON v.QueriedObject = d.This WHERE CONTRAINS(v.Content, 'keyword')
查找文档内容或者字符型属性 包含keyword1 关键字, 并且(或者 /并且不)包含 keyword2关键字的所有文档 :
- SELECT d.This, d.DocumentTitle, v.* FROM Document d INNER JOIN
- VerityContentSearch v ON v.QueriedObject = d.This WHERE CONTRAINS(v.Content, 'keyword1 <AND/OR/NOT> keyword2')
查找文档内容或者字符型属性里, keyword1关键字和 keyword2关键字在一起的所有文档( keyword1、 keyword2或者 keyword2、 keyword1) :
- SELECT d.This, d.DocumentTitle, v.* FROM Document d INNER JOIN
- VerityContentSearch v ON v.QueriedObject = d.This WHERE CONTRAINS(v.Content, 'keyword1 <NEAR> keyword2')