检索策略范文常用的检索策略有些

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

检索策略范文常用的检索策略有些

在机检中,经常要用到一些不同于手工检索的技术。虽然各个检索系统的指令有所不同,但下列技术是在机检中通用的。

1.布尔逻辑算符

①逻辑与

符号为“AND”或“*”,表示概念之间交叉或限定关系的一种组配。表达式为:A and B或者A*B。只有同时包含有检索词A和检索词B的文献记录才是命中文献。该运算符可使检索范围缩小,提高查准率。

②逻辑或

符号为“OR”或“+”,表示概念之间并列关系的一种组配。表达式为:A or B或者A+B。表示数据库中凡含有检索词A或者检索词B或同时含有检索词A和B的记录均为命中文献。该运算符可扩大检索范围,提高查全率。

③逻辑非

符号为NOT或“AND NOT”,表示概念之间不包含关系的一种组配,表达式为A not B,表示数据库中包含有检索词A,但同时不包含检索词B的文献记录才算命中文献。该运算符可通过从某一检索范围中去除某一部分文献的方式达到缩小检索范围,提高查准率。

④多个布尔算符的组合构成复杂的检索策略式

⑤不同算符的组合

其运算次序为 not 、and 、or,也可用括号改变运算次序,如A or B and C的检索结果与(A or B))and C的检索结果完全不同。

例如,欲检“肝硬化或肝癌出现腹水”,拟定检索策略式如下:

肝硬化 or 肝癌 and 腹水但检索结果表达的概念含义却为“肝硬化或出现腹水的肝癌”,与原题意不符如要表达原题意,需加括号改变运算次序:(肝硬化 or 肝癌)and 腹水)

类级别检索策略有立即检索和延迟检索,默认的检索策略是立即检索。在Hibernate映射文件中,通过在上配置lazy属性来确定检索策略。对于Session的检索方式,类级别检索策略仅适用于load

方法;也就说,对于get、qurey检索,持久化对象都会被立即加载而不管lazy是false还是true.一般来说,我们检索对象就是要访问它,因此立即检索是通常的选择。由于load方法在检索不到对象时会抛出异常(立即检索的情况下),因此我个人并不建议使用load检索;而由于中的lazy属性还影响到多对一及一对一的检索策略,因此使用load方法就更没必要了。关联级别检索策略有立即检索、延迟检索和迫切左外连接检索。对于关联级别检索,又可分为一对多和多对多、多对一和一对一两种情况讨论。一对多和多对多关联关系一般使用配置。有lazy和outer-join属性,它们的不同取值绝对了检索策略。1)立即检索:这是一对多默认的检索策略,此时lazy=false,outer-join=false.尽管这是默认的检索策略,但如果关联的集合是无用的,那么就不要使用这种检索方式。2)延迟检索:此时lazy=true,outer-join=false(outer-

join=true是无意义的),这是优先考虑的检索方式。3)迫切左外连接检索:此时 lazy=false,outer-join=true,这种检索策略只适用于依靠id检索方式(load、get),而不适用于query的集合检索(它会采用立即检索策略)。相比于立即检索,这种检索策略减少了一条sql语句,但在Hibernate中,只能有一个配置成outer-join=true.多对一和一对一检索策略一般使用、配置。中需要配置的属性是 outer-join,同时还需要配置one端关联的的lazy属性(配置的可不是中的lazy哦),它们的组合后的检索策略如下:1) outer-join=auto:这是默认值,如果lazy=true为延

迟检索,如果lazy=false为迫切左外连接检索。2) outer-

join=true,无关于lazy,都为迫切左外连接检索。3) outer-join=false,如果lazy=true为延迟检索,否则为立即检索。可以看到,在默认的情况下(outer-join=auto,lazy=false),对关联的one端对象Hibernate采用的迫切左外连接检索。依我看,很多情况下,我们并不需要加载one端关联的对象(很可能我们需要的仅仅是关联对象的id);另外,如果关联对象也采用了迫切左外连接检索,就会出现select语句中有多个外连接表,如果个数多的话会影响检索性能,这也是为什么Hibernate通过

hibernate.max_fetch_depth属性来控制外连接的深度。对于迫切左外连接检索,query的集合检索并不适用,它会采用立即检索策略。对于检索策略,需要根据实际情况进行选择。对于立即检索和延迟检索,它们的优点在于select语句简单(每张表一条语句)、查询速度快,缺点在于关联表时需要多条select语句,增加了访问数据库的频率。因此在选择即检索和延迟检索时,可以考虑使用批量检索策略来减少select语句的数量(配置batch-size属性)。对于切左外连接检索,优点在于select较少,但缺点是select语句的复杂度提高,多表之间的关联会是很耗时的操作。另外,配置文件是死的,但程序是活的,可以根据需要在程序里显示的指定检索策略(可能经常需要在程序中显示指定迫切左外连接检索)。

所谓检索策略,就是在分析检索提问的基础上,确定检索的数据库、检索的用词,并明确检索词之间的逻辑关系和查找步骤的科学安排。检索式(即检索用词与各运算符的组配成的表达式)仅仅是狭义上的检索策略。

模板,内容仅供参考

相关文档
最新文档