一种教学资源的全文搜索引擎系统的制作方法_3

文档序号:9326938阅读:来源:国知局
ield.1ndex.UN_T0KENIZED)、分词并索引(Field.1ndex.TOKENIZED)。
[0074]5 将 Document 添加到 IndexWriter 里面:
[0075]indexffriter.addDocument(document);
[0076](6)关闭索引器 IndexWriter:
[0077]indexffriter.close ();
[0078]Lucene数据源组织结构如图3所示。索引存储模块42将得到的索引文件存储在存储空间中。
[0079]4、搜索及Lucene打分机制
[0080]查询搜索单元5包括:搜索索引模块51,其基于Iucene的query查询接口,根据关键词或语句的分词结果生成查询对象,对建立索引单元4内的索引文件进行搜索,得到相关的教学资源;相关性排序模块52,其用于对教学资源与查询对象的相关程度进行打分,按得分排序得到与查询对象最相关的教学资源。
[0081]搜索索引模块51中用于Lucene搜索的4个主要api的类分别为IndexSearcher,Query, QueryParser 和 Hits。
[0082]IndexSearcher是搜索的入口,他的search方法提供了搜索功能。QueryParser是一个非常通用的帮助类,他的作用是把用户输入的文本转换为内置的Query对象。QueryParser的使用如下
[0083]QueryParser.parse(String query, String field, Analyzer analyzer)throwsParseExcept1n,
[0084]其中:query是用户输入的内容,field是搜索默认的field,analyzer是用来将用户输入的内容也作分析处理(分词),一般情况下这里的anaylyzer需要和创建索引的时候采用的analyzer保持一致。
[0085]搜索结果的处理:Hits对象,Hits对象是搜索结果的集合,主要有下面几个方法:
[0086]IengthO,这个方法记录有多少条结果返回(lazy loading)
[0087]doc (η)返回第η个记录
[0088]id (η)返回第 η 个记录的 Document ID
[0089]score (n)第η个记录的相关度(积分)
[0090]由于搜索的结果一般比较大,从性能上考虑,Hits对象并不会真正把所有的结果全部取回,默认情况下是保留前100个记录。
[0091]相关性排序模块52具有一套较为完善的打分机制,该Lucene打分机制结合了Boolean model 和 Vector Space Model (VSM)。
[0092]Iucene在查询时会首先基于Boolean Model通过在查询语句中的boolean逻辑(AND,OR, NOT)来缩小待打分的文档结果,此过程涉及倒排表的合并。VSM模型会对上述返回的结果进行打分,计算查询语句与搜索文档的相关性。打分公式如下:
[0093]score (q, d) = coord (q, d) X queryNorm(q) X Σ tinq (tf (tin d) X idf (t) 2X t.getBoost () X norm (t, d))
[0094]该公式各部分的意义如下:
[0095]t:Term,这里的Term是指包含域信息的Term。
[0096]coord(q, d):一次搜索可能包含多个搜索词,而一篇文档中也可能包含多个搜索词,此项表示,当一篇文档中包含的搜索词越多,则此文档则打分越高。
[0097]queryNorm(q):计算每个查询条目的方差和,此值并不影响排序,而仅仅使得不同的query之间的分数可以比较。
[0098]tf (t in d):Term t在文档d中出现的词频。
[0099]idf(t):Term t在几篇文档中出现过。
[0100]boost:激励因子,可以通过setBoost方法设置。
[0101]各类Boost 值:
[0102]t.getBoost O:查询语句中每个词的权重,可以在查询中设定某个词更加重要;
[0103]d.getBoost O:文档权重,在索引阶段写入nrm文件,表明某些文档比其他文档更重要;
[0104]f.getBoost O:域的权重,在索引阶段写入nrm文件,表明某些域比其他的域更重要。
[0105]norm(t, d):标准化因子,它包括三个参数:
[0106]Document boost:此值越大,说明此文档越重要。
[0107]Field boost:此域越大,说明此域越重要。
[0108]IengthNorm(field) = (1.0/Math, sqrt (numTerms)):一个域中包含的 Term 总数越多,也即文档越长,此值越小,文档越短,此值越大。
[0109]查询搜索单元5将搜索到的教学资源结果列表传输给用户交互单元1,用户交互单元I通过web页面的形式显示。用户可以点击相应的课件资源进行在线查看,或者下载到本地。
[0110]本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
【主权项】
1.一种教学资源的全文搜索引擎系统,其特征在于,包括: 用户交互单元(I),其为输入输出装置,用于接收用户输入的关键词或语句,以及显示或输出查询到的教学资源; 教学资源库(2),其用于存储上传的教学资源; 文本处理单元(3),其分别与所述用户交互单元(I)和所述教学资源库(2)通信,用于对所述教学资源的文本及所述关键词或语句进行处理,生成分词结果; 建立索引单元(4),其与所述文本处理单元(3)通信,利用基于Iucene的建索引引擎,根据所述教学资源的分词结果建立索引文件,并存储所述索引文件; 查询搜索单元(5),其与所述用户交互单元(I)、所述文本处理单元(3)及所述建立索引单元(4),其用于根据所述关键词或语句的分词结果生成查询对象,对所述建立索引单元(4)内的所述索引文件进行搜索,搜索到的与所述查询对象最相关的教学资源后返回所述用户交互单元(I)。2.如权利要求1所述的教学资源全文搜索引擎系统,其特征在于,所述文本处理单元(3)包括: 文本抽取模块(31),从所述教学资源中抽取出文本;所述文本来源包括:ppt类型、word类型、pdf类型、txt类型的文档; 中文词语处理模块(32),其为ICTCLAS分词系统用于对从所述文本、用户输入的所述关键词或语句进行词语切分、词性标注及词语过滤,生成分词结果。3.如权利要求1所述的教学资源全文搜索引擎系统,其特征在于,所述建立索引单元(4)包括: 索引创建模块(41),其用于建立索引器IndexWriter,建立文档对象Document,在所述文档对象Document中建立字段Field,并将所述文档对象Document添加到所述索引器Indexffriter中,得到索引文件; 索引存储模块(42),其与所述索引创建模块(41)通信,用于存储所述索引文件。4.如权利要求1所述的教学资源全文搜索引擎系统,其特征在于,所述查询搜索单元(5)包括: 搜索索引模块(51),其基于Iucene的query查询接口,根据所述关键词或语句的分词结果生成查询对象,对所述建立索引单元(4)内的所述索引文件进行搜索,得到相关的教学资源; 相关性排序模块(52),其用于对所述教学资源与所述查询对象的相关程度进行打分,按得分排序得到与所述查询对象最相关的教学资源。5.如权利要求1所述的教学资源全文搜索引擎系统,其特征在于,所述用户交互单元(I)为web网站。
【专利摘要】本发明公开了一种教学资源的全文搜索引擎系统,包括:用户交互单元,其为输入输出装置,用于接收用户输入的关键词或语句,以及显示或输出查询到的教学资源;教学资源库,其用于存储上传的教学资源;文本处理单元,用于对教学资源的文本及关键词或语句进行处理,生成分词结果;建立索引单元,其利用基于lucene的建索引引擎,根据教学资源的分词结果建立索引文件,并存储索引文件;查询搜索单元,其用于根据关键词或语句的分词结果生成查询对象,对建立索引单元内的索引文件进行搜索,搜索到的与查询对象最相关的教学资源后返回用户交互单元。本发明具有优秀的面向对象的系统架构,使得对于Lucene扩展的难度降低,方便扩充新功能。
【IPC分类】G06F17/30
【公开号】CN105045852
【申请号】CN201510392169
【发明人】王肃, 郑骏, 陈志云, 胡文心, 王明亚
【申请人】华东师范大学
【公开日】2015年11月11日
【申请日】2015年7月6日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1