Lucene检索数据库支持中文检索

Lucene检索数据库支持中文检索
Lucene检索数据库支持中文检索

全文分两部分:

一:Lucene简介

Lucene版本:3.0.2

全文检索大体分两个部分:索引创建(Indexing)和搜索索引(Search)

1. 索引过程:

1) 有一系列被索引文件(此处所指即数据库数据)

2) 被索引文件经过语法分析和语言处理形成一系列词(Term)。

3) 经过索引创建形成词典和反向索引表。

4) 通过索引存储将索引写入硬盘。

2. 搜索过程:

a) 用户输入查询语句。

b) 对查询语句经过语法分析和语言分析得到一系列词(Term)。

c) 通过语法分析得到一个查询树。

d) 通过索引存储将索引读入到内存。

e) 利用查询树搜索索引,从而得到每个词(Term)的文档链表,对文档链表进行交,差,并得到结果文档。

f) 将搜索到的结果文档对查询的相关性进行排序。

g) 返回查询结果给用户。

? 索引过程如下:

?创建一个IndexWriter用来写索引文件,它有几个参数,INDEX_DIR 就是索引文件所存放的位置,Analyzer便是用来对文档进行词法分析和语言处理的。

?创建一个Document代表我们要索引的文档。

?将不同的Field加入到文档中。我们知道,一篇文档有多种信息,如题目,作者,修改时间,内容等。不同类型的信息用不同的Field来表示,在本例子中,一共有两类信息进行了索引,一个是文件路径,一个是文件内容。其中FileReader的SRC_FILE就表示要索引的源文件。

? IndexWriter调用函数addDocument将索引写到索引文件夹中。

? 搜索过程如下:

?IndexReader将磁盘上的索引信息读入到内存,INDEX_DIR就是索引文件存放的位置。

?创建IndexSearcher准备进行搜索。

?创建Analyer用来对查询语句进行词法分析和语言处理。

?创建QueryParser用来对查询语句进行语法分析。

?QueryParser调用parser进行语法分析,形成查询语法树,放到Query 中。

?IndexSearcher调用search对查询语法树Query进行搜索,得到结果TopScoreDocCollector。

二:代码示例(本文重点部分)

1) 首先是连接数据库的jdbc配置文件信息以及存放索引文件的路径配置信息

Test.properties代码

1.jdbc.driverClassName = com.mysql.jdbc.Driver

2.jdbc.url = jdbc:mysql://192.168.0.1/dbname?autoReconnect=true&c

haracterEncoding=utf8

https://www.360docs.net/doc/d010633721.html,ername = root

4.jdbc.password = password

5.jdbc.maxIdle = 2

6.jdbc.maxActive = 4

7.jdbc.maxWait = 5000

8.jdbc.validationQuery = select 0

9.res.index.indexPath = D\:\\apache-tomcat-6.0.18\\webapps\\test\

\testHome\\search\\res\\index1

10.res.index.mainDirectory = D\:\\apache-tomcat-6.0.18\\webapps\\t

est\\testHome\\search\\res

2) 读取资源文件的工具类:

Java代码

1.package https://www.360docs.net/doc/d010633721.html,mon;

2.

3.import java.io.IOException;

4.import java.io.InputStream;

5.import java.util.HashMap;

6.import java.util.Map;

7.import java.util.Properties;

8.

9./**

10. * PropertiesUtil.java

11. * @version 1.0

12. * @createTime 读取配置文件信息类

13. */

14.public class PropertiesUtil {

15.

16. private static String defaultPropertyFilePath = "/test.prop

erties";

17.

18. private static Map ppsMap = new HashMap<

String,Properties>();

19.

20. /**

21. * 读取默认文件的配置信息,读key返回value

22. * @param key

23. * @return value

24. */

25. public static final String getPropertyValue(String key) {

26. Properties pps = getPropertyFile(defaultPropertyFilePat

h);

27. return pps == null ? null : pps.getProperty(key);

28. }

29.

30. /**

31. * 传入filePath读取指定property文件,读key返回value

32. * @param propertyFilePath

33. * @param key

34. * @return value

35. */

36. public static String getPropertyValue(String propertyFilePa

th,String key) {

37. if(propertyFilePath == null) {

38. propertyFilePath = defaultPropertyFilePath;

39. }

40. Properties pps = getPropertyFile(propertyFilePath);

41. return pps == null ? null : pps.getProperty(key);

42. }

43.

44. /**

45. * 根据path返回property文件,并保存到HashMap中,提高效率

46. * @param propertyFilePath

47. * @return

48. */

49. public static Properties getPropertyFile(String propertyFil

ePath) {

50. if(propertyFilePath == null) {

51. return null;

52. }

53. Properties pps = ppsMap.get(propertyFilePath);

54. if(pps == null) {

55. InputStream in = PropertiesUtil.class.getResourceAs

Stream(propertyFilePath);

56. pps = new Properties();

57. try {

58. pps.load(in);

59. } catch (IOException e) {

60. e.printStackTrace();

61. }

62. ppsMap.put(propertyFilePath, pps);

63. }

64.

65. return pps;

66. }

67.}

3) Jdbc连接数据库获取Connection工具类,不做分析,直接上代码

Java代码

1.package https://www.360docs.net/doc/d010633721.html,mon;

2.

3.import java.sql.Connection;

4.import java.sql.DriverManager;

5.import java.sql.ResultSet;

6.import java.sql.SQLException;

7.import java.sql.Statement;

8.

9./**

10. * JdbcUtil.java

11. * @version 1.0

12. * @createTime JDBC获取Connection工具类

13. */

14.public class JdbcUtil {

15.

16. private static Connection conn = null;

17.

18. private static final String URL;

19.

20. private static final String JDBC_DRIVER;

21.

22. private static final String USER_NAME;

23.

24. private static final String PASSWORD;

25.

26. static {

27. URL = PropertiesUtil.getPropertyValue("jdbc.url");

28. JDBC_DRIVER = PropertiesUtil.getPropertyValue("jdbc.dri

verClassName");

29. USER_NAME = PropertiesUtil.getPropertyValue("https://www.360docs.net/doc/d010633721.html,ern

ame");

30. PASSWORD = PropertiesUtil.getPropertyValue("jdbc.passwo

rd");

31. }

32.

33. public static Connection getConnection() {

34. try {

35. Class.forName(JDBC_DRIVER);

36. conn = DriverManager.getConnection(URL, USER_NAME,

PASSWORD);

37. } catch (ClassNotFoundException e) {

38. e.printStackTrace();

39. } catch (SQLException e) {

40. e.printStackTrace();

41. }

42. return conn;

43. }

44.

45.}

4) 万事具备,只欠东风了,下面是核心部分,方法都有注释,不多说了,一步步来,我想肯定是没有问题的。代码如下:

Java代码

1.package com.test.lucene.logic;

2.

3.import java.io.File;

4.import java.sql.Connection;

5.import java.sql.ResultSet;

6.import java.sql.Statement;

7.import java.util.ArrayList;

8.import java.util.List;

9.

10.import org.apache.lucene.analysis.Analyzer;

11.import org.apache.lucene.document.Document;

12.import org.apache.lucene.document.Field;

13.import org.apache.lucene.document.Field.TermVector;

14.import org.apache.lucene.index.IndexWriter;

15.import org.apache.lucene.queryParser.QueryParser;

16.import org.apache.lucene.search.IndexSearcher;

17.import org.apache.lucene.search.Query;

18.import org.apache.lucene.search.ScoreDoc;

19.import org.apache.lucene.search.Searcher;

20.import org.apache.lucene.search.TopDocs;

21.import org.apache.lucene.store.Directory;

22.import org.apache.lucene.store.FSDirectory;

23.import org.apache.lucene.util.Version;

24.import org.wltea.analyzer.lucene.IKAnalyzer;

25.import org.wltea.analyzer.lucene.IKSimilarity;

26.

27.import https://www.360docs.net/doc/d010633721.html,mon.JdbcUtil;

28.import https://www.360docs.net/doc/d010633721.html,mon.PropertiesUtil;

29.import com.test.lucene.model.SearchBean;

30.

31./**

32. * SearchLogic.java

33. * @version 1.0

34. * @createTime Lucene数据库检索

35. */

36.public class SearchLogic {

37.

38. private static Connection conn = null;

39.

40. private static Statement stmt = null;

41.

42. private static ResultSet rs = null;

43.

44. private String searchDir = PropertiesUtil.getPropertyValue(

"res.index.indexPath");

45.

46. private static File indexFile = null;

47.

48. private static Searcher searcher = null;

49.

50. private static Analyzer analyzer = null;

51.

52. /** 索引页面缓冲 */

53. private int maxBufferedDocs = 500;

54. /**

55. * 获取数据库数据

56. * @return ResultSet

57. * @throws Exception

58. */

59. public List getResult(String queryStr) throws E

xception {

60.

61. List result = null;

62. conn = JdbcUtil.getConnection();

63. if(conn == null) {

64. throw new Exception("数据库连接失败!");

65. }

66. String sql = "select articleid,title_en,title_cn,abstra

ct_en,abstract_cn from p2p_jour_article";

67. try {

68. stmt = conn.createStatement();

69. rs = stmt.executeQuery(sql);

70. this.createIndex(rs); //给数据库创建索引,此处执行

一次,不要每次运行都创建索引,以后数据有更新可以后台调用更新索引

71. TopDocs topDocs = this.search(queryStr);

72.

73. ScoreDoc[] scoreDocs = topDocs.scoreDocs;

74.

75. result = this.addHits2List(scoreDocs);

76. } catch(Exception e) {

77. e.printStackTrace();

78. throw new Exception("数据库查询sql出

错! sql : " + sql);

79. } finally {

80. if(rs != null) rs.close();

81. if(stmt != null) stmt.close();

82. if(conn != null) conn.close();

83. }

84.

85. return result;

86. }

87.

88. /**

89. * 为数据库检索数据创建索引

90. * @param rs

91. * @throws Exception

92. */

93. private void createIndex(ResultSet rs) throws Exception {

94.

95. Directory directory = null;

96. IndexWriter indexWriter = null;

97.

98. try {

99. indexFile = new File(searchDir);

100. if(!indexFile.exists()) {

101. indexFile.mkdir();

102. }

103. directory = FSDirectory.open(indexFile); 104. analyzer = new IKAnalyzer();

105.

106. indexWriter = new IndexWriter(directory, analy zer, true, IndexWriter.MaxFieldLength.UNLIMITED);

107. indexWriter.setMaxBufferedDocs(maxBufferedDocs );

108. Document doc = null;

109. while(rs.next()) {

110. doc = new Document();

111. Field articleid = new Field("articleid", S tring.valueOf(rs

112. .getInt("articleid")), Field.Store .YES,

113. Field.Index.NOT_ANALYZED, TermVect or.NO);

114. Field abstract_cn = new Field("abstract_cn ", rs

115. .getString("abstract_cn") == null ? "" : rs

116. .getString("abstract_cn"), Field.S tore.YES,

117. Field.Index.ANALYZED, TermVector.N O);

118. doc.add(articleid);

119. doc.add(abstract_cn);

120. indexWriter.addDocument(doc);

121. }

122.

123. indexWriter.optimize();

124. indexWriter.close();

125. } catch(Exception e) {

126. e.printStackTrace();

127. }

128. }

129.

130. /**

131. * 搜索索引

132. * @param queryStr

133. * @return

134. * @throws Exception

135. */

136. private TopDocs search(String queryStr) throws Excepti on {

137.

138. if(searcher == null) {

139. indexFile = new File(searchDir);

140. searcher = new IndexSearcher(FSDirectory.open( indexFile));

141. }

142. searcher.setSimilarity(new IKSimilarity()); 143. QueryParser parser = new QueryParser(Version.LUCEN E_30,"abstract_cn",new IKAnalyzer());

144. Query query = parser.parse(queryStr);

145.

146. TopDocs topDocs = searcher.search(query, searcher.

maxDoc());

147.

148. return topDocs;

149. }

150.

151. /**

152. * 返回结果并添加到List中

153. * @param scoreDocs

154. * @return

155. * @throws Exception

156. */

157. private List addHits2List(ScoreDoc[] score Docs ) throws Exception {

158.

159. List listBean = new ArrayList();

160. SearchBean bean = null;

161. for(int i=0 ; i

162. int docId = scoreDocs[i].doc;

163. Document doc = searcher.doc(docId);

164. bean = new SearchBean();

165. bean.setArticleid(doc.get("articleid")); 166. bean.setAbstract_cn(doc.get("abstract_cn"));

167. listBean.add(bean);

168. }

169. return listBean;

170. }

171.

172. public static void main(String[] args) {

173. SearchLogic logic = new SearchLogic();

174. try {

175. Long startTime = System.currentTimeMillis();

176. List result = logic.getResult("急性肺潮气量临床试验");

177. int i = 0;

178. for(SearchBean bean : result) {

179. if(i == 10) break;

180. System.out.println("https://www.360docs.net/doc/d010633721.html, " + bean.get Class().getName()

181. + " : bean.articleid " + bean.getA rticleid()

182. + " : bean.abstract_cn " + bean.ge tAbstract_cn());

183. i++;

184. }

185. System.out.println("searchBean.result.size : "

+ result.size());

186.

187. Long endTime = System.currentTimeMillis();

188. System.out.println("查询所花费的时间为:" + (endTime-startTime)/1000);

189. } catch (Exception e) {

190. e.printStackTrace();

191. System.out.println(e.getMessage());

192. }

193. }

194.}

5) 第四步用到了一个SearchBean,其实这就是一个javabean文件,包含两个String类型(articleid和abstract_cn)的set、get方法,自己回去补上吧。

顺便说下数据库表结构:

tablename随便取,但要跟上面查询中的表对应

表字段:articleid int 类型

abstract_cn varchar类型

对表字段没有太严格的定义,本来就是用来测试的。

6) 最后给大家提供所使用到的jar包列表:

IKAnalyzer3.2.5Stable.jar(一位好心人建议我升级一下jar包,呵呵,最新的jar包名为:IKAnalyzer3.2.8.jar ,谢谢了!)

lucene-analyzers-3.0.2

lucene-core-3.0.2

lucene-highlighter-3.0.2

lucene-memory-3.0.2

lucene-queries-3.0.2

mysql-connector-java-5.0.8-bin

中文数据库检索报告

学号:专业:姓名 检索课题:含重金属废水的处理技术 检索工具:中国知网 检索词:重金属,处理 检索过程: 1)制定检索策略 (1)分析课题,选择检索词。 经分析,检索词选择为重金属,处理 (2)检索要求:①期刊范围不限;②学科不限;③时间不限 2)实施检索策略 (1)登陆郑大图书馆,进入中国知网,首先进行初级检索,勾选出与课题密切相关的文献,点击导出/参考文献,然后,用同样的方法进行高级检索,勾选密切相关文献,点击导出/参考文献。如截图所示:

检索结果: [1]马静.天然植物材料作为吸附剂处理低浓度重金属废水的研究[D].湖南大学,2007. [2]李晓星.锰矿石脱硫(H_2S)及其产物处理含重金属废水的研究[D].合肥工业大学,2008. [3]李长波,赵国峥,张洪林,蒋林时,苗磊.生物吸附剂处理含重金属废水研究进展[J].化学与生物工程,2006,02:10-12. [4]吴昊,张盼月,蒋剑虹,肖辉煌,杨力.反渗透技术在重金属废水处理与回用中的应用[J].工业水处理,2007,06:6-9. [5]王湖坤,龚文琪,胡婧.粉煤灰-累托石颗粒吸附材料处理含重金属废水[J].武汉理工大学学报,2007,08:62-66. [6]朱健.应用硅藻土处理含重金属离子废水相关理论基础及关键技术研究[D].中南林业科技大学,2013. [7]黄进.多功能介孔硅基吸附剂的制备及其对重金属废水的处理研究[D].上海师范大学,2013.

[8]刘刚伟.蒙脱石复合颗粒吸附剂的制备及处理含重金属废水的研究[D].武汉理工大学,2009. [9]黄超.凹凸棒土改性及其对含重金属废水净化应用的研究[D].贵州大学,2009. [10]李琛.藻类在含重金属废水处理中的应用[J].电镀与精饰,2011,02:19-23. [11]周芬,汪晓军.化学-混凝沉淀处理含氟含重金属废水研究[J].环境工程学报,2012,02:445-450. [12]刘萍,曾光明,黄瑾辉,牛承岗.生物吸附在含重金属废水处理中的研究进展[J].工业用水与废水,2004,05:1-5. [13]杨晓玲.用气浮法处理含重金属废水[J].云南冶金,2000,04:38-40. [14]许佩瑶,吴世军.粉煤灰处理含重金属废水的研究进展[J].煤炭工程,2010,02:95-97. [15]陶有胜,朱联锡,张克仁.沉淀浮选法治理含重金属废水的研究[J].四川环境,1994,03:22-25. [16]陶有胜,朱联锡,张克仁.沉淀浮选法处理矿山含重金属废水技术初探[J].四川环境,1993,02:36-38. [17]曾桓兴.铁氧体共沉淀技术净化含重金属废水[J].环境科学,1983,04:66-71. [18]齐亚凤.改性甘蔗渣对重金属离子吸附行为研究[D].武汉工程大学,2012. [19]王柯桦,李雅婕.生物法在处理重金属废水中的应用[J].广东化工,2013,02:67-68. [20]朱婧文,刁硕,张阳.海藻在处理含重金属废水中的应用研究[J].北方环境,2013,01:118-119. [21]樊霆.真菌对重金属的抗性机制和富集特性研究[D].湖南大学,2009. [22]凌静.硅藻土对废水中Cd~(2+)和Pb~(2+)的吸附性能研究[D].南华大学,2013. 对检索结果的文献分析: 1)从学术传播度上来看,如下表所示:

全文检索功能

在应用中加入全文检索功能 ——基于java的全文索引引擎lucene简介 作者:车东 email: https://www.360docs.net/doc/d010633721.html,/https://www.360docs.net/doc/d010633721.html, 写于:2002/08 最后更新: 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 https://www.360docs.net/doc/d010633721.html,/tech/lucene.html 关键词:lucene java full-text search engine chinese word segment 内容摘要: lucene是一个基于java的全文索引工具包。 1.基于java的全文索引引擎lucene简介:关于作者和lucene的历史 2.全文检索的实现:luene全文索引和数据库索引的比较 3.中文切分词机制简介:基于词库和自动切分词算法的比较 4.具体的安装和使用简介:系统结构介绍和演示 5.hacking lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 6.从lucene我们还可以学到什么 基于java的全文索引/检索引擎——lucene lucene不是一个完整的全文索引应用,而是是一个用java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 lucene的作者:lucene的贡献者doug cutting是一位资深全文索引/检索专家,曾经是v-twin搜索引擎(apple的copland操作系统的成就之一)的主要开发者,后在excite担任高级系统架构设计师,目前从事于一些internet底层架构的研究。他贡献出的lucene的目标是为各种中小型应用程序加入全文检索功能。 lucene的发展历程:早先发布在作者自己的https://www.360docs.net/doc/d010633721.html,,后来发布在sourceforge,2001年年底成为apache基金会jakarta的一个子项目:https://www.360docs.net/doc/d010633721.html,/lucene/ 已经有很多java项目都使用了lucene作为其后台的全文索引引擎,比较著名的有: ?jive:web论坛系统; ?eyebrows:邮件列表html归档/浏览/查询系统,本文的主要参考文档“thelucene search engine: powerful, flexible, and free”作者就是eyebrows系统的主要开发者之一,而eyebrows已 经成为目前apache项目的主要邮件列表归档系统。 ?cocoon:基于xml的web发布框架,全文检索部分使用了lucene ?eclipse:基于java的开放开发平台,帮助部分的全文索引使用了lucene

几大中文数据库专业检索式举例

几大中文数据库专业检索式举例 CNKI专业检索式 可检索字段: SU=主题,TI=篇名,KY=关键词,AB=摘要,FT=全文,AU=作者,FI=第一作者,AF=作者单位,CV=会议名称,CP=论文集名称, RF=参考文献,RT=更新时间,FU=基金,CLC=中图分类号,IB=ISBN ,CF=被引频次 示例: 1)TI='生态' and KY='生态文明' and (AU % '陈'+'王' ) 可以检索到篇名包括“生态”并且关键词包括“生态文明”并且作者为“陈”姓和“王”姓的所有文章; 2)SU='北京'*'奥运' and FT='环境保护' 可以检索到主题包括“北京”及“奥运”并且全文中包括“环境保护”的信息; 3)SU=('经济发展'+'可持续发展')*'转变'-'泡沫' 可检索“经济发展”或“可持续发展”有关“转变”的信息,并且可以去除与“泡沫”有关的部分内容。 TI='精益生产' and SU=('持续改善'+'改善') and (AU % '陈'+'王' ) CNKI专业检索式: 可检索字段:题名(题名),关键词(关键词),摘要(摘要),全文(全文),作者(作者),第一责任人(第一作者),单位(作者单位),来源(来源),主题(主题),基金(基金),引文(参考文献) SU=('心跳骤停'+'心搏骤停') AND SU=('心肺复苏'+'心肺脑复苏') AND SU=('溶栓治疗'+'尿激酶'+'链激酶'+'组织型纤维蛋白酶原激活剂') 注:SU—限定范围为主题 TI—题名 KY—关键词 AB—摘要 FT—全文 AU—作者 FI—第一作者 AF—作者单位 JN—期刊名称 RF—参考文献

检索工具的分类

1.检索工具的分类 (1)按照信息搜集方法分类 按照信息搜集方法的不同,搜索引擎系统可以分为三大类: 1)目录式搜索引擎(Directory Search Engine) 以人工方式或半自动方式搜集信息,由编辑员查看信息之后,人工形成信息摘要,并将信息置于事先确定的分类框架中。信息大多面向网站,提供目录浏览服务和直接检索服务。该类搜索引擎因为加入了人的智能,所以信息准确、导航质量高,缺点是需要人工介入(维护工作量大)、信息量少、信息更新不及时。这类搜索引擎的代表是:Yahoo!、LookSmart、Ask Jeeves、Snap、Open Directory. 2)机器人搜索引擎(Crawler-Based Search Engine) 由一个称为蜘蛛(Spider)的机器人程序以某种策略自动地在Internet中搜集和发现信息,由索引器为搜集到的信息建立索引,由检索器根据用户的查询输入检索索引库,并将查询结果返回给用户。服务方式是面向网页的全文检索服务。该类搜索引擎的优点是信息量大、更新及时、毋需人工干预,缺点是返回信息过多,有很多无关信息,用户必须从结果中筛选。这类搜索引擎的代表是:AltaVista、Northern Light、Excite、Infoseek、Inktomi、FAST、Lycos、Google. 3)元搜索引擎(Meta Search Engine) 这类搜索引擎没有自己的数据,而是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。服务方式为面向网页的全文检索。这类搜索引擎的优点是返回结果的信息量大,缺点是不能够充分使用元搜索引擎的功能,用户需要做更多的筛选。这类搜索引擎的代表是WebCrawler、InfoMarket. 目前,商业的搜索引擎站点正在结合各种搜索引擎的优点,在类型上有逐渐融合的趋势。例如,Yahoo!在保持人工分类的同时,使用Inktomi的机器人搜索引擎,用户查询时,如果选?quot;网站搜索"便搜索人工分类库,选择"网页搜索"便搜索机器人搜索引擎的索引库。一些传统的机器人搜索引擎也增加了人工分类的内容,以提供高精度的导航信息。另外搜索引擎站点有"门户化"的倾向,在提供搜索服务的同时,提供多样的网络服务,如新闻、股票、天气预报、虚拟社区、游戏、电子商务等等,成为名副其实的"网络门户". (2)按照检索软件分类 按照服务提供方式的不同,检索软件也可以分为三大类:全文数据库检索软件、非全文数据库检索软件、主题指南类检索软件。 全文数据库检索软件正常运作的前提是网站拥有大量的信息,因此必须依靠强大的数据库作为后盾。它能够提供完整的文献和信息检索,查全率很高。但由于信息量非常大,检索起来比较困难,对检索技术的要求很高。 非全文数据库检索软件具有速度快、使用简便、索引量大的特点,但仅提供部分全文检索,有时需要二次检索,感到不太方便。 主题指南类检索软件是目前网络检索中最常用的检索软件。这种软件查准率高、速度快、使用方便。现大部分网站都具备主题指南类检索功能。 (3)按照检索语言分类 目前,因特网几乎使用了世界所有语言。每一种语言都形成了自己独特的检索体系。比较常用的语言有英文、法文、德文、日文、俄文、中文等。 2.全文数据库的检索软件 (1)Alta Vista 检索引擎 Alta Vista检索引擎为数字设备公司(DEC)开发,号称是目前最大的Web索引数据库,Alta Vista检索引擎提供两种检索方法:简单检索和高级检索。高级检索包括了简单检索的

Lucene:基于Java的全文检索引擎简介

由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也就可想而知了。 所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。 由此可以看出模糊查询相对数据库的精确查询是一个非常不确定的问题,这也是大部分数据库对全文检索支持有限的原因。Lucene最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制。 可以通过一下表格对比一下数据库的模糊查询: Lucene全文索引引擎数据库 索引将数据源中的数据都通过全文索引一一建立反向索引对于LIKE查询来说,数据传统的索引是根本用不上的。数据需要逐个便利记录进 行GREP式的模糊匹配,比有索引的搜索速度要有多个数量级的下降。 匹配效果通过词元(term)进行匹配,通过语言分析接口的实 现,可以实现对中文等非英语的支持。 使用:like "%net%" 会把netherlands也匹 配出来, 多个关键词的模糊匹配:使用like "%com%net%":就不能匹配词序颠倒 的https://www.360docs.net/doc/d010633721.html, 匹配度有匹配度算法,将匹配程度(相似度)比较高的结果排在前面。没有匹配程度的控制:比如有记录中net出现5词和出现1次的,结果是一样的。 结果输出通过特别的算法,将最匹配度最高的头100条结果 输出,结果集是缓冲式的小批量读取的。 返回所有的结果集,在匹配条目非常多的 时候(比如上万条)需要大量的内存存放 这些临时结果集。 可定制性通过不同的语言分析接口实现,可以方便的定制出 符合应用需要的索引规则(包括对中文的支持)没有接口或接口复杂,无法定制 结论高负载的模糊查询应用,需要负责的模糊查询的规则,索引的资料量比较大使用率低,模糊匹配规则简单或者需要模糊查询的资料量少 全文检索和数据库应用最大的不同在于:让最相关的头100条结果满足98%以上用户的需求 Lucene的创新之处: 大部分的搜索(数据库)引擎都是用B树结构来维护索引,索引的更新会导致大量的IO操作,Lucene在实现中,对此稍微有所改进:不是维护一个索引文件,而是在扩展索引的时候不断创建新的索引文件,然后定期的把这些新的小索引文件合并到原先的大索引中(针对不同的更新策略,批次的大小可以调整),这样在不影响检索的效率的前提下,提高了索引的效率。 Lucene和其他一些全文检索系统/应用的比较: Lucene其他开源全文检索系统 增量索引和批量索引可以进行增量的索引(Append),可以对于大量 数据进行批量索引,并且接口设计用于优化批 量索引和小批量的增量索引。 很多系统只支持批量的索引,有时数 据源有一点增加也需要重建索引。 数据源Lucene没有定义具体的数据源,而是一个文档 的结构,因此可以非常灵活的适应各种应用 (只要前端有合适的转换器把数据源转换成相 应结构), 很多系统只针对网页,缺乏其他格式 文档的灵活性。 索引内容抓取Lucene的文档是由多个字段组成的,甚至可以 控制那些字段需要进行索引,那些字段不需要 索引,近一步索引的字段也分为需要分词和不 需要分词的类型: 需要进行分词的索引,比如:标题,文章内 容字段 不需要进行分词的索引,比如:作者/日期 字段 缺乏通用性,往往将文档整个索引了

中文数据库的检索实验报告

实验报告 课程名称计算机信息检索 实验项目名称 班级与班级代码 实验室名称(或课室) 专业 任课教师 学号: 姓名: 实验日期:

姓名实验报告成绩评语: 指导教师(签名)

年月日说明:指导教师评分后,学年论文交院(系)办公室保存。

实验一 一、实验目的 掌握常见中文数据库的检索方式。利用所学理论知识,结合实验分析不同数据库在信息组织、检索分式等方面的特点。 二、实验内容: 用一专题在六个中文数据库、检索结果主要也目录和摘要为主。 检索专题自选。 1、中国期刊网 2、维普中文科技期刊数据库 3、万方数据资源系统 4、国研网 5、中宏数据库 6、人大复印资料 7、高校财经数据库 三、实验环境 CPU:Intel(R) core?2 CPU 内存:1G 软件: IE 资源:互联网 四、实验步骤 1.进入广东商学院图书馆网页,点击数字资源,进入中国期刊数据库。 2. 根据自己检索课题的要求,采用分类检索与主题检索在加上 3.鉴于以上检索的结果记录数较多,而且与需求的相关性低,采用以下缩减手段:

(1)在检索导航中更改默认分类:只选择“经济与管理”类 (2)更改更新时间(2005~2009),得到结果; (3)把模糊匹配改为精确匹配得到结果; 4. 通过亲自查看其摘要,全文的方式,剔除一些不相关的文献,并归纳出剔除文章的原则。 5. 将最后的所得的与主题密切相关的文献题录信息拷贝下来,保存在作业文件夹中。并在实验报告中体现出来。 6. 把最后所得的期刊论文的全文都一一拷贝下来。保存在自己的移动硬盘中。作为后期撰写文献综述的依据之一。 7. 登陆到学校的重庆维普数据库、人大报刊索引全文数据库,万方全文数据库期刊、国研网子系统,重复2,3,4,5,6,将所得检索结果拷贝下来,放在作业文件夹 五、试验结果 实验步骤3(2)(3)的结果如下,其它数据库结果类似 六、实验分析 期刊网的主页上免费的资源有:学术研究、工具书检索、党和国家大事、文化与生活、学习教育、行业知识仓库等,在相应领域的信息检索中起着重要作用。

Lucene和数据库

全文检索的实现机制 Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口中。总体上看:可以先把Lucene当成一个支持全文索引的数据库系统。 比较一下Lucene和数据库: Lucene 数据库 索引数据源:doc(field1,field2...) doc(field1,field2...) \ indexer / _____________ | Lucene Index| -------------- / searcher \ 结果输出:Hits(doc(field1,field2) doc(field1...)) 索引数据源: record(field1,field2...) record(field1..) \ SQL: insert/ _____________ | DB Index | ------------- / SQL: select \ 结果输出: results(record(field1,field2..) record(field1...)) Document:一个需要进行索引的“单元” 一个Document由多个字段组成 Record:记录,包含多个字段Field:字段Field:字段 Hits:查询结果集,由匹配的Document组成RecordSet:查询结果集,由多个Record组 成 全文检索≠ like "%keyword%" 通常比较厚的书籍后面常常附关键词索引表(比如:北京:12, 34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心是一个排序问题。 由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也就可想而知了。 所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。

信息检索 英文全文数据库中文数据库

1检索课程名称:海洋光学遥测信息应用研究 2课题分析::海洋光学主要利用光电子学进行测量以获取特征数据进行研究和指导决策生产,遥测是光电子方法的一种应用,检索课题主要是了解遥测对海洋观测所获取信息的应用或者简单理解为遥测信息在海洋光学中的应用.本检索目的是要找出课题相关文献,为防止漏检应考虑上述两层含义.实质上上述两层含义是一个问题的两个方面 中文关键词: 1遥测 2海洋光学 3应用 3、选择检索工具: 本课题检索目标为中文各类相关文献。根据本图书馆的资源情况选择如下数据库:(1)CNKI 数字图书馆:中国期刊全文数据库 (2)万方数据库(会议论文) (3书生之家数字图书馆等 4、构建检索策略:因“海洋光学”为课题的主体,应优先检索,“遥测”应在检索结果中同时存在。故制定如下检索策略 检索算法:(遥测or遥感)*海洋光学 时间范围:2003-2012 文献范围:期刊论文、会议论文、专著 5、简述检索策略调整的过程: 1)在 CNKI 中国期刊全文数据库中(CNKI 外网): 利用其中的高级检索 输入全文为:遥感 主题为:海洋光学 检索结果为235条结果记录过多 然后在加入关键词“应用”检索结果为12条,能达到我们的预期 2)万方数据库(会议论文) 以会议方式检索 keywords:遥测and 海洋光学检索结果为0 不符合要求于是减少关键词

输入keywords:海洋光学一共检索出9条结果 符合检索结果的要求。 3)书生之家数字图书馆 在图书下图书全文检索,选择按图书内容检索,以所有分类输入遥测and海洋光学, 检索结果为0输入范围太小于是输入“遥测”检索结果为709条,条目过多输入“海洋光学”检索结果为4条以这个为结果比较符合。 6.整理检索结果 1:CNKI中国期刊全文数据库有关专辑检索结果(选1条) 【英文篇名】 ADVANCES IN THE SCIENCE OF MARINE OPTICAL REMOTE SENSING APPLICATION IN CHINA 【作者中文名】潘德炉; 王迪峰; 【作者英文名】 PAN De-lu; WANG Di-feng (Key Lab of Ocean Dynamic Processes and Satellite Oceanography; SIO; SOA; PRC; Hangzhou 310012; China); 【作者单位】国家海洋局海洋动力过程与卫星海洋学重点实验室国家海洋局第二海洋研究所; 国家海洋局海洋动力过程与卫星海洋学重点实验室国家海洋局第二海洋研究所浙江杭州310012; 浙江杭州; 【文献出处】地球科学进展, Advance in Earth Sciences, 编辑部邮箱 2004年 04期 期刊荣誉:中文核心期刊要目总览 ASPT来源刊中国期刊方阵 CJFD收录刊【关键词】海洋; 光学遥感; 中国; 【英文关键词】 Marine; Optical remote sensing; China.; 【摘要】 20世纪90年代以来,我国航天遥感事业的发展促进了海洋光学应用科学的发展,特别是通过近几年来,国家"863"高新技术计划的实施,在该方面有了新进展。文章将着重介绍光学遥感信息的大气校正、光学遥感海洋环境信息提取、光学遥感在赤潮与溢油监测等3个方面的应用科学新进展,并提出了在我国进一步深入开展海洋光学遥感应用科学技术研究的建议。 【英文摘要】 The special ocean color satellite HY-1 was in the orbit on May 15, 2002, whose main purpose is detection of marine environment of

用Lucene检索数据库

用Lucene检索数据库 1.写一段传统的JDBC程序,讲每条的用户信息从数据库读取出来 2.针对每条用户记录,建立一个lucene document Document doc = new Document(); 并根据你的需要,将用户信息的各个字段对应luncene document中的field 进行添加,如: doc.add(new Field("NAME","USERNAME",Field.Store.YES,Field.Index.UN_TOKENIZED)); 然后将该条doc加入到索引中,如:luceneWriter.addDocument(doc); 这样就建立了lucene的索引库 3.编写对索引库的搜索程序(看lucene文档),通过对lucene的索引库的查找,你可以快速找到对应记录的ID 4.通过ID到数据库中查找相关记录 用Lucene索引数据库 Lucene,作为一种全文搜索的辅助工具,为我们进行条件搜索,无论是像Google,Baidu 之类的搜索引擎,还是论坛中的搜索功能,还是其它C/S架构的搜索,都带来了极大的便利和比较高的效率。本文主要是利用Lucene对MS Sql Server 2000进行建立索引,然后进行全文索引。至于数据库的内容,可以是网页的内容,还是其它的。本文中数据库的内容是图书馆管理系统中的某个作者表-Authors表。 因为考虑到篇幅的问题,所以该文不会讲的很详细,也不可能讲的很深。 本文以这样的结构进行: 1.介绍数据库中Authors表的结构 2.为数据库建立索引 3.为数据库建立查询功能 4.在web界面下进行查询并显示结果 1.介绍数据库中Authors表的结构 字段名称字段类型字段含义

中文数据库信息检索

实验5中文数据库信息检索(万方学位论文数据库) 【实验目的】 熟悉万方学位论文数据库的基本情况;掌握其信息检索系统的检索方法以及检索结果的处理;掌握提高查全率和查准率的方法。 学时安排:2 学时 【实验内容】 1、查阅该数据库的检索方式及其检索流程。 2、根据自选检索课题,从上次实验本组检索获取的10篇相关论文中的作者(至少8人)出发,使用作者途径(不限定年份)利用万方数字化期刊全文数据库检索本组课题内容。分别统计每位作者的发表论文分 检索,要求写出:检索课题名称、检索分类序列、检索结果数、5—10条检索命中记录的题录信息(题名、作者、文献出处)。 【实验报告】 1、进入武汉工业学院图书馆主页,点击〖常用数据库〗中的〖万方数据资源系统〗,即可进入图5-1,然后点击〖万方学位论文数据库〗,即可开始检索历程。

2、自选检索课题,如:数据加密技术,使用万方学位论文数据库检索。 图5-2 万方学位论文数据库分类检索页 实验6外文数据库信息检索(EBSCO期刊全文数据库) 【实验目的】 熟悉EBSCO期刊全文数据库信息检索系统的基本情况,掌握外文数据库信息检索系统的检索方法以及检索结果的处理。 学时安排:2 学时

【实验准备】 1、根据在实验3、4、5中的自我选题的查询情况,选择相应的主题检索词并将其翻译成英文(至少3~5个),可以通过阅读已查中文文献中的英文摘要、英文关键词的形式获得。 2、EBSCO期刊全文数据库 (1)访问地址:https://www.360docs.net/doc/d010633721.html,/ 或https://www.360docs.net/doc/d010633721.html, (2)使用方法:此服务器不计国际流量,只对我校合法的IP地址开放。(3)内容介绍: 我馆情况:已经购买了其中的ASP(Academic Search Premier)和BSP 包。 学术期刊集成全文数据库(Academic Search Premier,简称ASP):ASP是当今全世界最大的多学科学术期刊全文数据库。包括有关生物科学、工商经济、资讯科技、通讯传播、工程、教育、艺术、文学、医药学等领域的7876种期刊的文摘和索引;3990种学术期刊的全文,全文最早回溯到1990年,索引和文摘最早回溯到1984年。数据每日更新。商业资源集成全文数据库(Business Source Premier,简称BSP):BSP 收录了3048种学术性商业类全文期刊,文摘和索引的收藏更超过3851种期刊。较著名的有华尔街日报(The Walls Street Journal)、哈佛商业评论(Harvard Business Review)、每周商务(Business Week)、财富(Fortune)、American Banker、Forbes、The Economist等,涉及的主题范围有国际商务、经济学、经济管理、金融、会计、劳动人事、银行等。适合高等院校经济学、工商管理、金融银行、劳动人事管理等专业使用。全文最早回溯至1990年。数据每日更新。 3、世界科学出版社全文电子期刊数据库 (1)访问地址:https://www.360docs.net/doc/d010633721.html, (2)内容介绍: 资源特点:WorldSciNet为新加坡世界科学出版社(World Scientific Publishing Co.)电子期刊发行网站,该出版社委托EBSCO/MetaPress 公司在清华大学图书馆建立了世界科学出版社全文电子期刊镜像站。WorldSciNet目前提供58种全文电子期刊,涵盖数学、物理、化学、生物、医学、材料、环境、计算机、工程、经济、社会科学等领域。我馆情况:从2002年开始订阅。 资源状态:为网络资源,我校用户直接连接在清华的镜像站点使用。4、德国施普林格全文电子期刊数据库 (1)访问地址:https://www.360docs.net/doc/d010633721.html, (2)使用方法:为网络资源,拥有我校合法IP的用户,直接连接施普林格在清华的镜像站点使用。 (3)内容介绍: 资源特点:德国施普林格(Springer-Verlag)是世界上著名的科技出版集团, 通过Springer LINK系统提供学术期刊及电子图书的在线服务。目前Springer LINK所提供的全文电子期刊共包含439种学术期刊(其中近400种为英文期刊),是科研人员的重要信息源。我馆情况:从2002年开始订阅。 【实验内容】

最新整理几大中文数据库专业检索式举例电子教案

此文档收集于网络,如有侵权,请联系网站删除 几大中文数据库专业检索式举例 CNKI专业检索式 可检索字段: SU=主题,TI=篇名,KY=关键词,AB=摘要,FT=全文,AU=作者,FI=第一作者,AF=作者单位,CV=会议名称,CP=论文集名称, RF=参考文献,RT=更新时间,FU=基 金,CLC=中图分类号,IB=ISBN ,CF=被引频次 示例: 1)TI='生态' and KY='生态文明' and (AU % '陈'+'王' ) 可以检索到篇名包括“生态”并且关键词包括“生态文明”并且作者为“陈”姓和“王”姓的所有文章; 2)SU='北京'*'奥运' and FT='环境保护' 可以检索到主题包括“北京”及“奥运”并且全文中包括“环境保护”的信息; 3)SU=('经济发展'+'可持续发展')*'转变'-'泡沫' 可检索“经济发展”或“可持续发展”有关“转变”的信息,并且可以去除与“泡沫”有关的部分内容。 TI='精益生产' and SU=('持续改善'+'改善') and (AU % '陈'+'王' ) CNKI专业检索式: 可检索字段:题名(题名),关键词(关键词),摘要(摘要),全文(全文),作者(作者),第一责任人(第一作者),单位(作者单位),来源(来源),主题(主题),基金(基金),引文(参考文献) SU=('心跳骤停'+'心搏骤停') AND SU=('心肺复苏'+'心肺脑复苏') AND SU=('溶栓治疗'+'尿激酶'+'链激酶'+'组织型纤维蛋白酶原激活剂') 注:SU—限定范围为主题 TI—题名 KY—关键词 AB—摘要 FT—全文 AU—作者 FI—第一作者 AF—作者单位 JN—期刊名称 RF—参考文献 RT—更新时间 PT—发表时间 精品文档

常用中文数据库周记

常用中文数据库周记 这周我们进行的是常用中文数据库的学习。 周一学习的是网上三大中文期刊数据库引文功能之比较。随着网上检索技术和现代信息技术的发展, 人们对传统印刷版期刊和手工检索的使用率越来越低, 取而代之的是方便快捷的电子期刊。中文电子期刊收录了这些期刊, 并采用全文、文摘、题录等多种形式向国际互联网用户提供服务, 使读者能够轻松快捷的检索到所需资料。 小组五个人,分别对三大数据库的收录范围、检索途径、检索功能、检索结果的输出结果和检索效果进行比较。我的任务是这个实验报告的摘要、引文和检索结果的输出处理的比较。对于这方面的比较,我分别对检索效果、显示排序去重、文章结果显示、全文浏览、来源库、检索途径等等进行了比较分析。经过分析我得出了综合性最强的是“CNKI”,收录理工科科技信息文献最多的是“维普”。 周三我们进行学习的就是一个实践作业,研究的是信管专业,老师给我们分出了十四个点,如下: 我选择的是课程体系设置和出国留学信息。学习了两年的信息管理与信息系统专业,对这个专业真的不是非常的了解,经过这次的学习,加深了我对本专业的认识。信息管理与信息系统专业(简称“信息管理”专业)是顺应知识经济时代的迫切需要,整合经济信息管理、情报学、管理信息系统、科技信息等专业新成立的一门信息科学和管理学交叉学科。通过现代管理学、信息科学、网络技术及业务知识的融合,培养适应知识经济需要,以信息技术进行现代化管理的“复合型、应用型、创新创业型” 中、高级管理人才。毕业生具备信息资源收集、分析、检索、利用的综合能力,能在政府、金融机构及企业信息化领域从事实施、维护、分析、智能决策等“IT+管理”类深具发展潜力的工作。最后自己查找了关于本专业出国留学的信息。出国留学,这种学习的好处当然一定会是多方面的——异域的风俗,不同的文化,更包容更自由的环境;全新开放的视野、完善先进的设施,更多的信息,更好的机会。但这一切好处都是建立在学习的基础之上的,就读学校给你提供的是环境和条件,不是成功本身。中国之所以每年有数十万人自费出国留学,客观地讲,是因为大家对留学生的成功成才抱有极大的希望,对投资子女出国留学的回报有较好预测。 经过这周的学习,不仅让我了解了三大数据库的使用方法,而且也知道了他们之间的差

Lucene全文检索的应用及检索效率测试研究

Luc e ne全文检索的应用 及检索效率测试研究3 彭 哲 陈敬文 【摘 要】使用Lucene设计一个全文检索系统,系统由三大功能模块组成:索引模块、检索模块和存储模块。第二部分着重分析PDF数据转换,X M L文档设计,索引的分词、建立及效率等技术难点,并对中文分词分析器、索引文件膨胀率、索引影响因子及检索系统并对检索响应时间进行测试。应关注X M L数据库的安全性。【关键词】Lucence X M L 全文检索 效率 Abstract:Using lucene de sign a full t ext retrieval syst em,including index mo dule,retrieval mo dule,a nd dat a ba se mo dule1Mainly a nalyze how to tra nsform PDF to X M L,de signing of X M L dat a ba se,Chine se word se gment ation,founding a nd efficiency of indexe s,then t e st s a nalyzer,exp a nsivity,f a ctors of indexe s a nd re sponding time of se arching1The security of X M L dat a ba se should be p aid att ention to1 K ey w ords:Lucene X M L full t ext retrieval efficiency Lucene不是一个完整的全文检索应用程序,而是一个高性能的J a va全文检索工具包,它可以方便地嵌入到各种应用中实现针对应用的全文检索功能。Lucene以其开放源代码的特性、优异的索引结构和良好的系统架构,得到了越来越广泛的应用。 本文使用Lucene设计并实现了一个全文检索系统,与关系数据库相比,采用X M L作为数据存储容器,实现了单个数据库操作,并在大信息量环境下极大地节省了存储空间,提高了检索的速度。 1 系统分析与设计 本文实现的全文跨库检索系统由三大功能模块组成:索引模块、检索模块和存储模块[1]。 111 索引模块 Lucene最核心的特征就在于它特殊的索引结构可以提高检索效率,这也是我们选择Lucene的重要原因。Lucene使用的是倒排文件索引结构,它把每个关键词、关键词在文中出现频率、关键词在文中位置分别作为词典文件(Term Dictionary)、频率文件(Fre quencie s)、位置文件(Po sitions)保存。其中词典文件不仅保存每个关键词,还保留了指向频率文件和位置文件的指针,通过指针可以找到该关键词的频率信息和位置信息。 同时,关键词在索引文件中的排放顺序是按照字符顺序排列的,所以Lucene可以用二元搜索算法快速定位关键词。 另外,Lucene中使用了Field的概念,用于表达信息所在位置(如标题中、文章中、url中),在建立索引时,该Field信息也记录在词典文件中。由于每个关键词一定属于一个或多个Field,所以每个关键词都有一个Field信息。 为了减少索引文件的大小,Lucene对索引还使用了压缩技术,首先,对词典文件中的关键词进行了压缩,关键词压缩为<前缀长度,后缀>;其次,大量用到了对数字的压缩,数字只保存与上一个值的差值。 在维护索引文件时,Lucene与其他B树结构的索引有所不同,它是在扩展索引的时候不断创建新的索引文件,然后定期把这些新的小索引文件合并到原先的大索引中,这样避免了大量的IO操作,在不影响检索效率的前 3本文系国家社科基金重大项目“建设创新型国家的信息服务体制与信息保障体系研究”(项目编号:06&ZD031)课题成果之一。

利用中文数据库进行文献信息检索作业及答案

1.检索课题名称:工程机械非线性动力学特性的实验研究 2.课题分析:“工程机械”属于本课题的主体词,“非线性”是工程机械的适用范围,“动 力学特性”是工程机械的研究领域,“实验研究”不作为课题检索胡关键词使用。由此得出的检索关键词如下: 中文关键词:(1)工程机械(2)非线性(3)动力学特性 英文关键词:(1)Engineering mechanical(2)Nonlinearity(3)Dynamic characteristic 3.选择检索工具: (1)万方数据库(中国学术会议论文) (2)维普资讯(中国科技期刊数据库) (3)CNKI(中国知网期刊数据库) 4.构建检索策略:“工程机械”是课题主体词,应当优先检索,“非线性”是其次检索研 究课题的使用范围,“动力学特性”属于检索课题的领域。故制定以下检索策略:检索算法:(工程机械)*(非线性)*(动力学特性) 时间范围:2005-2014 文献范围:期刊论文、专著、会议论文等 5.简述检索策略调整的过程: (1)万方数据库(中国学术会议论文) a.使用策略“(工程机械)*(非线性)*(动力学特性)”检索式,检索范 围:题名或关键字,限定年代2005-2014年之间,检索文献类型:期刊论 文、会议论文。检索出两条内容。 (2)维普资讯(中国科技期刊数据库) a.使用原策略“(工程机械)*(非线性)*(动力学特性)”(((题名或关 键字=工程机械)*( 题名或关键字=非线性))*( 题名或关键字=动力学特 性)*全部期刊*年=2005-2014)进行检索,检索范围选择:所有专辑和全 文,日期范围选择:2005-2014,检索出1条记录。 (3)CNKI(中国知网期刊数据库) a.使用策略“(工程机械)*(非线性)*(动力学特性)”检索式,高级 检索,检索内容条件:(关键词=工程机械)*(关键词=非线性)*(关 键词=动力学特性)*(发表时间:2005-01-01—今天)*(学科领域: 基础科学、工程科技Ⅰ辑、工程科技Ⅱ辑)*(跨库搜索:期刊,国 内会议,专利)进行检索,检索出0条记录。 b.仍使用策略“(工程机械)*(非线性)*(动力学特性)”检索式,这 次使用专业检索,((TI(题名)=工程机械AND KY(关键字)=非 线性AND KY(关键字)=动力学)),并扩大了检索时间:200-01-01 —今天,学科领域原则了全选,跨库搜索也选择了全选进行检索,检 索出1条记录。 6.整理检索结果: (1)万方数据库(中文学术会议论文)检索结果(其中择优选一条): 【篇名】旋转机械系统多自由度非线性动力学数值分析 【作者】裘春航李伟东吕和祥 【中文刊名】计算力学学报 【英文刊名】CHINESE JOURNAL OF COMPUTATIONAL MECHANICS 【年、期】2005年,22(4)期 【中文关键词】转子系统、非线性油膜力、数值稳定性、非线性动力学特性

检索工具分类

1.检索工具的分类(1)按照信息搜集方法分类按照信息搜集方法的不同,搜索引擎系统可以分为三大类:1)目录式搜索引擎(Directory Search Engine)以人工方式或半自动方式搜集信息,由编辑员查看信息之后,人工形成信息摘要,并将信息置于事先确定的分类框架中。信息大多面向网站,提供目录浏览服务和直接检索服务。该类搜索引擎因为加入了人的智能,所以信息准确、导航质量高,缺点是需要人工介入(维护工作量大)、信息量少、信息更新不及时。这类搜索引擎的代表是:Yahoo!、LookSmart、Ask Jeeves、Snap、Open Directory。2)机器人搜索引擎(Crawler-Based Search Engine)由一个称为蜘蛛(Spider)的机器人程序以某种策略自动地在Internet中搜集和发现信息,由索引器为搜集到的信息建立索引,由检索器根据用户的查询输入检索索引库,并将查询结果返回给用户。服务方式是面向网页的全文检索服务。该类搜索引擎的优点是信息量大、更新及时、毋需人工干预,缺点是返回信息过多,有很多无关信息,用户必须从结果中筛选。这类搜索引擎的代表是:AltaVista、Northern Light、Excite、Infoseek、Inktomi、FAST、Lycos、Google。3)元搜索引擎(Meta Search Engine)这类搜索引擎没有自己的数据,而是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。服务方式为面向网页的全文检索。这类搜索引擎的优点是返回结果的信息量大,缺点是不能够充分使用元搜索引擎的功能,用户需要做更多的筛选。这类搜索引擎的代表是WebCrawler、InfoMarket。目前,商业的搜索引擎站点正在结合各种搜索引擎的优点,在类型上有逐渐融合的趋势。例如,Yahoo!在保持人工分类的同时,使用Inktomi的机器人搜索引擎,用户查询时,如果选?quot;网站搜索”便搜索人工分类库,选择”网页搜索”便搜索机器人搜索引擎的索引库。一些传统的机器人搜索引擎也增加了人工分类的内容,以提供高精度的导航信息。另外搜索引擎站点有”门户化”的倾向,在提供搜索服务的同时,提供多样的网络服务,如新闻、股票、天气预报、虚拟社区、游戏、电子商务等等,成为名副其实的”网络门户”。(2)按照检索软件分类按照服务提供方式的不同,检索软件也可以分为三大类:全文数据库检索软件、非全文数据库检索软件、主题指南类检索软件。全文数据库检索软件正常运作的前提是网站拥有大量的信息,因此必须依靠强大的数据库作为后盾。它能够提供完整的文献和信息检索,查全率很高。但由于信息量非常大,检索起来比较困难,对检索技术的要求很高。非全文数据库检索软件具有速度快、使用简便、索引量大的特点,但仅提供部分全文检索,有时需要二次检索,感到不太方便。主题指南类检索软件是目前网络检索中最常用的检索软件。这种软件查准率高、速度快、使用方便。现大部分网站都具备主题指南类检索功能。(3)按照检索语言分类目前,因特网几乎使用了世界所有语言。每一种语言都形成了自己独特的检索体系。比较常用的语言有英文、法文、德文、日文、俄文、中文等。2.全文数据库的检索软件(1)Alta Vista 检索引擎Alta Vista检索引擎为数字设备公司(DEC)开发,号称是目前最大的Web索引数据库。Alta Vista检索引擎提供两种检索方法:简单检索和高级检索。高级检索包括了简单检索的所有特性,还允许使用布尔运算符和接近操作符、括号等,查找的结果按关键词排序。Alta Vista总能返回有用的信息,但由于没有对内容进行选择,它的”信噪比”也是最大的。使用Alta Vista检索引擎时应注意:要进行有效的检索,最好尽可能多而精确地输入描述所感兴趣的主题的词或词组。提供的词组越精确,检索结果就越好。如果你输入的词包含大写字母,则检索对大小写就比较敏感。如输入Telephone 则只检索含有这个词的内容,而输入telephone 则不论大小写都检索。如果要把一些词作为词组或一个整体来查询时,最好把它们加上双引号。如果要求特定单词包含在索引的文档中,可以在它前面加一个”+”号,如:+Telephone,并且在”+”号和单词之间不能有空格。相应的,如果要排除含有特定单词的文档,可以在它前面加一个”-”号,如-cool。进行简单查找的时候,可以在单词的末尾加一个通配符来代替任意的字母组合(最多可代替5个小写的

相关文档
最新文档