欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 626

点击:11418[回复顶层] [树状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 626
关于检索命中结果“不相干”的困惑的回复



今天有客户通过在线QQ询问为什么在检索中,命中了很多不相干的数据。我已通过邮件回复了此客户。

觉得这个话题涉及到一些后台技术,特别是我们系统独特的检索点加工技术,可能对其他客户也有帮助,所以将回复内容摘录如下,供大家参考和交流:

         由于keys配置文件中,引入了些检索点加工机制,比如“繁简兼容转换”、“大小写转换”、“全文检索转换”、“停用字转换”、“新旧ISBN兼容转换”以及二次代码随时扩展的其它转换函数等。其中“拼音字/词头转换”(pinyinab)这个加工机制,是提取拼音字头作为索引或检索词的。这个加工机制,常用于“题名拼音”和“责任者拼音”检索点构造中,它可能就是导致你们产生困惑的原因。你可以看看相关配置文件。

         如果在:

       <convert>

            <string style="upper,pinyinab" />

        </convert>

         加了pinyinab这个加工机制,那么,数据保存时,"chong qing ren"的字段内容(比如“重庆人”书名的拼音),就会转换为"CQR"(上述转换机制中,还有upper这个转为大写的加工机制)存贮于系统相应检索表中。

         如果在:

        <convertquery>

            <string style="upper,pinyinab" />

        </convertquery>

         加了pinyinab这个加工机制,它是转换前端检索词的,即读者输入的是" chong qing ren "的检索词,就会转换为"CQR"提交到数据库中,在相应检索表中查找。

 

         在这种情况下,假如读者想检索一本英文书,书名是"Chinese",他本意是想检索书名为"Chinese"的图书,但他选择的是全部检索路径,显然包含有“题名拼音”和“责任者拼音”这两个途径。那么,从这两个检索路径发起的检索请求,就会严格遵照keys中配置的检索点加工机制"pinyinab"进行处理,显然,此时,提交给系统的检索词,就会是"C",假如读者还选择的是"前方一致""中间一致",那么,"CQR""HCB"等也会被命中——也就是说,题名或责任者拼音中,可能会有很多很多检索点加工后,含"C"的索引内容了。返回到界面中,自然就是你们感觉到的不准确效果了。

 

         从这个角度,程序是没有错的。囿于成本考虑,不太可能做些智能判断,看看什么是汉语拼音字母,什么是单词,从而有选择性地加工检索点或检索词。

         那么,解决问题的办法有:

         1、取消这个pinyinab的转换方式。让读者辛苦些,不能实现偷懒输入字头也能检索结果——事实上,我认为这个方式可能比较适合国情——拼音多是为不方便输入汉字的人,比如外国人了解信息和检索的,中国人检索,什么时候喜欢输入拼音呢?

         2、在帮助或读者培训中,建议读者不要图省事而不选检索路径,如果能明确检索路径为“题名”,当然就会排除我们默认启用了的拼音字段检索点中的pinyinab加工机制了。——这个话题可以伸发出来对现在的OPAC中的检索路径选择的思考:现在在我们系统的简单检索界面风格中,要么是选“全部”,要么是选单一的检索路径,能否允许读者勾选多个库呢?这是可以考虑实现的(虽然高级检索界面风格中,可以实现这种数据库和检索路径的组配选择,但它易用性不够)。

        

         注意,顺带提醒一下:

         如果启用了pinyinab加工机制,那么,假如读者想用拼音字头检索“重庆人”的拼音索引,他得这么输入"C Q R",即每个字母间用空格分隔,而如果不分隔,"CQR"这样的输入,会被检索词加工机制处理为"C"(抽字/词头嘛),进行检索,也会命中很多不相关的东西。

          

         如有更好的建议,欢迎继续交流。

 



发表时间: 2011-01-11 17:14:09
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 627
其实只要取消用户输入的检索词加工方式pinyinab即可

作者: xietao


我的一点意见:

关于拼音字头的检索,keys配置文件中有:

        <convertquery>

            <string style="upper,pinyinab" />

        </convertquery>

 

表示用户输入的字符串要做“pinyinab”的方式加工。这本来是一个好意,也是和“记录中的拼音子字段加工方式”对称的一种做法,但是显然副作用挺大,它会把一些用于检索其他检索点的用户输入的字符串加工为一个字母的形式,从而导致用户普遍感受到的这个问题。

 

其实解决方法也很简单,就是在style中去除pinyinab方式即可。这样,如果用户真要进行拼音字头的检索,他输入拼音字头就可以了。去除piyinab方式导致用户输入“zhong guo”这样的检索词的时候不能自动加工为“zg”进行检索,但是这个用法知道的用户很少,因此去除pinyinab方式所导致的“损失”也很微小。用户输入“zg”进行检索就可以了。

 

如果没有什么反对的意见,我考虑在后面的新版本的dp2libraryws的安装包中,对书目库的keys配置文件模板进行如上的修改。

 

需要提醒的是,这种修改因为只涉及到用户输入检索词的加工方式,所以keys配置文件修改变化后,不用对相关数据库进行任何检索点刷新的操作。



发表时间: 2011-01-13 12:29:48



页 1 / 1
 

在线用户
访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
当前栏目在线用户数 30, 总在线用户数 31