<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>bg1011的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=bg1011</link>
<description>bg1011的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[信息检索相关资料（pku）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30882</link>
<author>bg1011</author>
<pubDate>2007/12/30 19:30:11</pubDate>
<description><![CDATA[<A><FONT size=3>　</FONT></A><PRE><FONT size=3>信息检索领域相关资料 (A Guide to Information Retrieval)
Organized by Hongfei Yan
Last updated on July 27, 2007

---------------------
Contents
	Books
		+ Finding Out About: Search Engine Technology from a cognitive 
			Perspective (Belew, R.K., 2000)
			http://www-cse.ucsd.edu/~rik/foa/
		+ Foundations of Statistical Natural (C. Manning and H. Schutze, 1999)
		+ Information Retrieval, 2nd edition (C.J. van Rijsbergen, 1979)
			(full text)
			http://www.dcs.gla.ac.uk/Keith/Preface.html
		+ Information Retrieval: A Survey (Ed Greengrass, 2000)
			http://www.csee.umbc.edu/cadip/readings/IR.report.120600.book.pdf
		+ Information Retrieval: Data Structures &amp; Algorithms
			(Frakes, W. and Baeza-Yates, R., 1992)
			http://www.dcc.uchile.cl/~rbaeza/iradsbook/irbook.html
		+ Information Retrieval Interaction (Ingwersen, P., Taylor Graham, 1992)
			http://www.db.dk/pi/iri/
		+ Introduction to Information Retrieval
			(Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schuetze, 2007)
			http://www-csli.stanford.edu/~schuetze/information-retrieval-book.html
		+ Managing Gigabytes:compressing and indexing documents and images,
			2nd edition, (Ian H. Witten, Alistair Moffat,and Timothy Bell,1999)
		+ Mining the Web: Discovering Knowledge from Hypertext Data 
			(Soumen Chakrabarti, 2003)
		+ Modeling the Internet and the Web: 
			probabilistic Methods and Algorithms 
			(Pierre Baldi, Paolo Frasconi and Padhraic Smyth, 2003)
		+ Modern Information Retrieval 
			(Ricardo Baeza-Yates and Berthier Ribeiro-Neto, 2000)
		+ Readings in Information Retrieval. 
			(Sparck-Jones, K. and Willett, P., 1997)
		+ Search Engine: Principle,Technology and Systems 
			搜索引擎-原理、技术与系统
			(Xiaoming Li,et al., 2005 ), (full text)
			http://sewm.pku.edu.cn/book/dlbook.html
		+ The Geometry of Information Retrieval 
			(C.J. van Rijsbergen, 2004)
			http://ir.dcs.gla.ac.uk/GeometryOfIR/
		+ The Turn: Integration of Information Seeking and Retrieval in Context
			(Ingwersen, P., and Jarvelin, K., 2005)
		+ TREC: Experiment and Evaluation in Information Retrieval 
			(Voorhees, E.M., and Harman, D.K., 2005)
			http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=10667

	Conferences and Workshops
		+ CIKM: Conference on Information and Knowledge Management
			http://www.csee.umbc.edu/cikm/
		+ SIGIR: Special Interest Group on Information Retrieval
			http://www.sigir.org/
		+ SIGKDD: Knowledge Discovery and Data Mining
			http://www.kdd.org/
		+ World Wide Web
			http://www.iw3c2.org/
		+ SEWM: Symposium of Search Engine and WebMining
			全国搜索引擎和网上信息挖掘学术研讨会
			http://net.pku.edu.cn/~sewm/

	Courses
		+ CMU Information Retrieval
			http://nyc.lti.cs.cmu.edu/classes/11-741/ (Spring 2006)
			Instructors: Jamie Callan and Yiming Yang 
		+ Cornell University The Structure of Information Networks (Spring 2006)
			http://www.cs.cornell.edu/courses/cs685/2006sp/
			Instructor: Jon Kleinberg
		+ Peking University Web Based Information Architectures (Fall 2006)
			http://net.pku.edu.cn/~wbia/
			Instructor: Xiaoming Li, Jimin Wang and Bo Peng
		+ Stanford Univ. Text Information Retrieval and Web Mining (Autumn 2005)
			http://www.stanford.edu/class/cs276/
			Instructor: Christopher Manning and Prabhakar Raghavan
		+ UIUC Introduction to Text Information Systems (Spring 2007)
			http://sifaka.cs.uiuc.edu/course/410s07/
			Instructor: ChengXiang Zhai
		+ UMass Univ. Information retrieval course (Spring 2005)
			http://ciir.cs.umass.edu/cmpsci646/
			Instructors: James Allan
		+ Washington Univ. Search Engines course
			http://courses.washington.edu/lis544/

	Evaluation Resources
		+ CLEF: Cross-Language Evaluation Forum
			http://clef.iei.pi.cnr.it/
		+ CWIRF: Chinese Web Information Retrieval Forum
			http://www.cwirf.org/
		+ DUC: Document Understanding Conferences
			http://duc.nist.gov/
		+ INEX: INitiative for the Evaluation of XML Retrieval
			http://inex.is.informatik.uni-duisburg.de/
		+ NTCIR: NII-NACSIS Test Collection for IR Systems
			http://research.nii.ac.jp/ntcir/
		+ TREC: Text REtrieval Conference 
			http://trec.nist.gov/

	Journals
		+ Briefings in Bioinformatics (full text)
			http://bib.oxfordjournals.org/archive/
		+ Computational Linguistics, The MIT Press
			http://mitpress.mit.edu/catalog/item/default.asp?ttype=4&amp;tid=10
		+ Data &amp; Knowledge Engineering (DKE), Elsevier
			http://www.elsevier.com/wps/find/journaldescription.cws_home/505608/description?navopenmenu=-2
		+ D-Lib Magazine
			http://www.dlib.org/
		+ Information Processing Letters, Elsevier
			http://www.elsevier.com/locate/issn/00200190
		+ Information Processing and Management (IP&amp;M), Elsevier
			http://www.elsevier.com/locate/infoproman
		+ Information Retrieval, Springer
			http://www.springer.com/sgw/cda/frontpage/0,11855,3-0-70-35744790-detailsPage%253Djournal%257Cdescription%257Cdescription,00.html
		+ Information Research
			http://informationr.net/ir
		+ International Journal on Digital Libraries, Springer
			http://link.springer.de/link/service/journals/00799/index.htm
		+ International Journal of Cooperative Information Systems (IJCIS), 
			World Scientific
			http://ejournals.wspc.com.sg/ijcis/ijcis.shtml
		+ International Journal on Document Analysis and Recognition, Springer
			http://link.springer.de/link/service/journals/10032/index.htm
		+ International Journal of Intelligent Systems, Wiley
			http://www3.interscience.wiley.com/cgi-bin/jhome/36062
		+ International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems (IJUFKS), World Scientific
			http://ejournals.wspc.com.sg/ijufks/ijufks.shtml
		+ Journal of the American Society for Information Science and Technology (JASIST), Wiley
			http://www3.interscience.wiley.com/cgi-bin/jhome/76501873
		+ Journal of Documentation (JDoc). Emerald
			http://www.emeraldinsight.com/0022-0418.htm
		+ Journal of Intelligent Information Systems (JIIS), Springer
			http://www.wkap.nl/journalhome.htm/0925-9902
		+ Knowledge and Information Systems (KAIS), Springer
			http://link.springer.de/link/service/journals/10115/index.htm
		+ Natural Language Engineering, Cambridge University Press
			http://www.cambridge.org/journals/journal_catalogue.asp?mnemonic=NLE
		+ Transactions On Information Systems (TOIS), ACM
			http://www.acm.org/tois/
		+ Transactions on Knowledge and Data Engineering (TKDE), IEEE 
			http://www.computer.org/tkde/

	List Archives
		+ SIG-IRList, http://www.sigir.org/sigirlist/index.html

	Organizations and Special Interest Groups
		+ Cambridge NLIP, http://www.cl.cam.ac.uk/Research/NL/
		+ CMU LTI, http://www.lti.cs.cmu.edu/
		+ DEC laboratories in Palo Alto, Calif.
		+ Glasgow Information Retrieval Group, http://www.dcs.gla.ac.uk/ir/
		+ Google Labs, http://labs.google.com/
		+ LTI, http://www.lti.cs.cmu.edu/
		+ Massachusetts CIIR, http://ciir.cs.umass.edu/
		+ MSR Asia, Web Search &amp; Data Mining Group
			http://research.microsoft.com/wsm/
		+ Standford InfoLab, http://infolab.stanford.edu/
		+ UIUC Information Retrieval Group, http://sifaka.cs.uiuc.edu/ir/
		+ 北大天网组, http://sewm.pku.edu.cn/
		+ 北京大学计算语言学研究所, http://icl.pku.edu.cn/
		+ 复旦大学信息检索和自然语言处理组, 
			http://www.cs.fudan.edu.cn/mcwil/irnlp/
		+ 哈工大信息检索组, http://ir.hit.edu.cn/
		+ 清华大学智能技术与系统国家重点实验室
			http://www.csai.tsinghua.edu.cn/ 
		#+ 中科院大规模内容计算组, http://159.226.40.18/ (fail to visit)

	Researchers
		+ Andrew McCallum,
			http://www.cs.umass.edu/~mccallum/
		+ ChengXiang Zhai, developing Lemur
			http://www-faculty.cs.uiuc.edu/~czhai/
		+ Gerard Salton
			http://www.cs.cornell.edu/Info/Department/Annual95/Faculty/Salton.html
		+ Karen Sparck, developing IDF
			http://www.cl.cam.ac.uk/users/ksj/
		+ Keith van Rijsbergen
			http://www.dcs.gla.ac.uk/~keith/
		+ Jamie Callan, 
			http://www.cs.cmu.edu/~callan/
		+ Jon Kleinberg, developing HIT
			http://www.cs.cornell.edu/home/kleinber/
		+ Li Xiaoming, developing Tianwang &amp; Infomall
		+ Nick Craswell, developing Terabyte Track
			http://research.microsoft.com/~nickcr
		+ Susan Dumais, developing LSI
			http://research.microsoft.com/~sdumais/
		+ Yiming Yang, developing text categorization
			http://www.cs.cmu.edu/~yiming/
		+ Stephen Robertson, 
			http://research.microsoft.com/users/robertson/
		+ Tefko Saracevic
			http://www.scils.rutgers.edu/~tefko/
		+ W. Bruce Croft
			http://ciir.cs.umass.edu/personnel/croft.html

	Research-related Resources
		+ http://www-faculty.cs.uiuc.edu/~czhai/research.html

	Software
		+ Apache Lucene: a full-featured text search engine library
			http://lucene.apache.org/java/docs/index.html
		+ Gate: a general architecture for text engineering
			http://gate.ac.uk/
		+ Lemur: A full-text search engine
			http://www.lemurproject.org/
		+ MG: A full-text search engine
			http://www.math.utah.edu/pub/mg/
		+ Porter Stemmer: English stemming algorithm
			http://www.tartarus.org/martin/PorterStemmer/
		+ Nutch: an open source web search engine
			http://sourceforge.net/projects/nutch/
		+ TSE: A Tiny Search Engine
			http://sewm.pku.edu.cn/src/TSE/

---------------------
References: 
[1] Information Retrieval Resources, http://www.sigir.org/resources.html
[2] http://ir.dcs.gla.ac.uk/resources.html
[3] http://www.cs.cmu.edu/~callan/Teaching/Resources.html
[4] Diekemar, Information Retrieval Links, Jan. 28, 1999. 
	http://web.syr.edu/~diekemar/ir.html
[5] 陈鸿标，网上研习信息检索，1999年11月. 
	http://159.226.40.18/freshman/resources/网上研习信息检索.doc
[6] 数据挖掘研究院, http://www.dmresearch.net/
[7] 语音自然语言在线, http://www.snlpinfo.com/index.php
[8] PKU SEWM Group, http://sewm.pku.edu.cn/
[9] http://www.cs.cmu.edu/~callan/Teaching/Resources.html
[10] http://icl.pku.edu.cn/member/lisujian/maincontent.htm
[11] http://www.cs.fudan.edu.cn/mcwil/irnlp/link.htm
[12] Robert Krovetz, A Guide to the Literature of Information Retrieval,
	http://159.226.40.18/freshman/resources/guide-to-ir-lit.ps
[13] ACM Digital Library, 
	http://portal.acm.org/portal.cfm
	http://acm.lib.tsinghua.edu.cn/acm/
[14] http://www.sigir.org/proceedings/Proc-Browse.html
[15] SIGIR,
	http://portal.acm.org/browse_dl.cfm?linked=1&amp;part=series&amp;idx=SERIES278&amp;coll=portal&amp;dl=ACM&amp;CFID=72474811&amp;CFTOKEN=69288563
[16] WWW, International World Wide Web Conference
	http://portal.acm.org/browse_dl.cfm?linked=1&amp;part=series&amp;idx=SERIES968&amp;coll=portal&amp;dl=ACM&amp;CFID=72474811&amp;CFTOKEN=69288563
[17] China Digital Journal Community, http://wanfang.calis.edu.cn/wf/szhqk/index.html



---------------------

More details are listed as follows
====================
CIIR 
(The Center for Intelligent Information Retrieval, 
美国Massachusetts大学的智能信息检索中心)
http://ciir.cs.umass.edu/

The Center for Intelligent Information Retrieval, a National Science 
Foundation-created S/IUCRC Center, is one of the leading information retrieval 
research labs in the world. The CIIR develops tools that provide effective 
and efficient access to large, heterogeneous, distributed, text and 
multimedia databases.

CIIR accomplishments include significant research advances in the areas of 
distributed information retrieval, information filtering, topic detection, 
multimedia indexing and retrieval, document image processing, terabyte 
collections, data mining, summarization, resource discovery, interfaces 
and visualization, and cross-lingual information retrieval.

The Center for Intelligent Information Retrieval continues to support the 
emerging information infrastructure, both through research and technology 
transfer. The goal of the CIIR is to develop tools that provide effective 
and efficient access to large, heterogeneous, distributed, text and 
multimedia databases. 

====================
Glasgow Information Retrieval Group
http://www.dcs.gla.ac.uk/ir/
由Keith van Rijsbergen率领的英国Glasgow大学信息检索研究小组。
这个小组理论和实践并重，旨在建造一个高效、新颖、成功的多媒体信息检索系统，
为终极用户服务。

The Information Retrieval Group led by Professor Keith van Rijsbergen has a 
vigorous programme of research, based on both theory and experiment, aimed at 
giving end-users novel, effective, and efficient access to the world of 
multi-media information. The group, part of the Department of Computing Science, 
University of Glasgow, has a strong research history in a wide area of 
information retrieval research from theoretical modelling of the retrieval 
process to advanced system building and to the user-oriented evaluation of 
information retrieval systems. The group's interests also include many areas 
of Web information retrieval such as link analysis, summarisation and the 
development of novel interaction techniques (e.g., ostension, implicit feedback 
and graphical visualisation). Our research preserves a strong emphasis on 
the evaluation of interactive IR systems, and the group maintains strong links 
with researchers in Human-Computer Interaction and Psychology.

------
Keith van Rijsbergen, http://www.dcs.gla.ac.uk/~keith/
英国格拉斯哥大学。概率IR的逻辑推理学派代表人，出版了著名的IR经典教材 
INFORMATION RETRIEVAL， 重点介绍用概率研究信息检的方法。

=====================
Cambridge NLIP Group 
(Natural Language and Information Processing Group)
http://www.cl.cam.ac.uk/Research/NL/

Research in NLIP has been done in the Computer Laboratory for nearly fifty years. 
The earliest work, by Roger Needham and Karen Sparck Jones, was on automatic 
thesaurus construction, in the context of document retrieval and machine translation. 
Subsequent research by Karen Sparck Jones during the 1960s and 70s focused on 
statistical approaches to retrieval and included innovative work on term 
weighting.  From the later 1970s research in language processing developed, 
with work on syntax, semantics and discourse processing,

------
Karen Sparck Jones, http://www.cl.cam.ac.uk/users/ksj/
Karen Sparck Jones has been one of the most influential figures in Computing 
since the 1950’s. Her work on Information Retrieval and Natural Language Processing 
has never been so central as it is are today, with its implications for 
search engine technology, the semantic web and even bioinformatics.

In 1972, Karen Sparck Jones published in the Journal of Documentation the paper 
which defined the term weighting scheme now known as inverse document frequency (IDF).

Karen Sparck Jones is emeritus Professor of Computers and Information at the 
Computer Laboratory, University of Cambridge. She has worked in automatic 
language and information processing research since the late fifties, 
and has many publications including several books, most recently `Evaluating 
Natural Language Processing Systems' with Julia Galliers, and `Readings in 
Information Retrieval', edited with Peter Willett. 

1988年度Salton奖得主。现代概率IR模型的另一创始人。在NLP、IR等领域都颇有建树，
而且做了大量的组织性工作。现在供职于英国剑桥大学计算机学院。

====================
LTI
CMU (Carnegie Mellon Universit) Language Technologies Institute,
http://www.lti.cs.cmu.edu/

The Language Technologies Institute (LTI) of the School of Computer Science at
Carnegie Mellon University conducts research and provides graduate education
in all aspects of language technology and information management. The LTI was
established in 1996, as an expansion of the Center for Machine Translation
(CMT).

The Center for Machine Translation (CMT) was a research branch of the School
of Computer Science devoted to basic and applied research in all aspects of
natural language processing, with a primary focus on machine translation,
speech processing, and information retrieval. Containing a unique mix of
academic and industrial researchers specializing in various aspects of
computer science, artificial intelligence, computational linguistics and
theoretical linguistics, the CMT provided a rich and diverse environment for
collaboration among faculty, staff, visiting scholars, and qualified students.

------
Lemur Toolkit
Lemur is a collection of search engine algorithms and information retrieval
applications used for IR research, development and education. Lemur provides a
rich query language that supports search against simple texts, structured
(XML) texts, and texts annotated with part-of-speech, named-entity, and other
annotations used in NLP and text-mining applications. Lemur's search engines
comfortably support collections ranging from a few gigabytes to a few
terabytes of text. The software is distributed under open-source license, and
is used widely in the IR research community.

====================
Standford InfoLab
http://infolab.stanford.edu/

The Stanford WebBase Project
http://dbpubs.stanford.edu:8091/~testbed/doc2/WebBase/

The Stanford WebBase project is investigating various issues in crawling,
storage, indexing, and querying of large collections of Web pages. The project
builds on the previous Google activity that was part of the DLI1 initiative.
The DLI2 WebBase project aims to build the necessary infrastructure to
facilitate the development and testing of new algorithms for clustering,
searching, mining, and classification of Web content.
====================
北大天网组, http://sewm.pku.edu.cn/

    北京大学网络实验室自1997年开始从事搜索引擎方面的研究与系统开发，
技术积累深厚，综合实力和学术影响在国内一直处于领先地位。我们研发的
“天网”搜索引擎系统是全国最有影响的出自校园的搜索引擎，从1997年10月
开始一直运行至今。“天网”在增量搜索技术、快速检索技术，海量信息存储
技术等方面都具有较强的优势，她的不断发展培育了一批批在海量网络文本
信息处理方面有实战经验的学生，受到中外IT企业的普遍欢迎。
    从2001年开始，本研究组在搜索引擎技术的基础上，展开了中国互联网
信息历史的收集与存档工作，形成了“中国互联网信息博物馆”，至今已
收藏20亿在不同时期出现过的中文网页，是目前全国规模最大的历史网页收藏
与回放系统。同时，我们还尝试了在其基础上进行多学科交叉的研究。

====================
中科院大规模内容计算组
http://159.226.40.18/

    信息检索小组主要针对文本信息的检索开展研究，多次参加TREC会议，
取得了很好的研究成果。小组开发的天罗检索系统在很多国家重要的信息部门
得到了广泛的应用，目前主要的研究方向包括WEB信息的获取，WEB信息检索等。
    信息分析小组的研究主要集中在大规模多源异构信息的分析与挖掘方面，
主要包括文本分类与聚类、信息过滤、个性化服务、自然语言问答和浅层
自然语言处理等。小组研制了一系列文本信息加工处理的实验平台，目前实验
平台可以通过主页中“成果演示”进行演示。值得一提的是小组开展的公开源码
计划，其中的高性能分词系统ICTCLAS得到了研究人员的广泛认同与使用。

====================
复旦大学信息检索和自然语言处理组, 
http://www.cs.fudan.edu.cn/mcwil/irnlp/ 	

大规模文本处理主要研究自然语言（特别是中文信息）的处理技术和方法，
包括二个方面内容：首先是基础性工作，主要是基础性的理论和算法, 包括
自动分词、未登录词识别、词性和概念标注、句法分析和语义分析等,也包括
语料库的搜集整理等；其次是中文信息处理的应用技术，包括自动索引、
文本检索、文本摘要、文本分类和文本过滤，特别是上述技术在网络环境下
的应用。这部分工作是文本方向的研究重点。

====================
HIT-IRLab, http://ir.hit.edu.cn/

    哈工大信息检索研究室 (HIT-IRLab) 成立于 2001 年 3月。研究方向
包括文本检索、问答系统、自动文摘、文本挖掘和语言分析等， 研究室以
语言分析为基础研究，以文本过滤为应用研究，以信息抽取为语言分析从
句子理解向 篇章理解的延伸，以句子检索为在语言分析和篇章理解的支持
下的智能化精准检索技术。 

====================
SIGIR（美国计算机学会信息检索特别兴趣小组）、
TREC（文本检索学术年会）
MUC（消息理解学术年会）
TIPSTER（美国国防部高级研究计划署的IR实践基地）

====================
北京大学计算语言学研究所
http://icl.pku.edu.cn/

    北京大学计算语言学研究所成立于1986年。致力于计算语言学理论、语言
信息处理的基础资源和应用技术三方面的研究。
    围绕计算语言学和自然语言处理，包括如下三个主要的方向：首先基础资源
的研究与建设：计算词典学与机器词典，综合型语言知识库，语料库语言学与
语料库加工技术，术语学、术语自动提取、术语标准化研究等。其次是基础理论、
NLP的模型和方法：计算语言学基础，自然语言处理核心技术，现代汉语语法，
汉语的词/句法/语义分析，NLP统计模型，语言处理的信息论方法等。另外是
应用技术：机器翻译的方法、技术与系统实现，信息检索与提取，自然语言
信息处理系统的评价方法和技术，受限汉语及其辅助写作系统，中国古诗词计算机
辅助研究等。

====================
清华大学智能技术与系统国家重点实验室
http://www.csai.tsinghua.edu.cn/ 

    智能技术与系统国家重点实验室依托于清华大学。实验室于1990年2月
对外开放运行。主要从事人工智能基本原理、基本方法的基础与应用基础研究，
包括智能信息处理、机器学习、智能控制，以及神经网络理论等，还从事与
人工智能有关的应用技术与系统集成技术的研究，主要有智能机器人、声音、
图形、图像、文字及语言处理等。

================
Susan Dumais, 
http://research.microsoft.com/~sdumais/

I am interested in algorithms and interfaces for improved information
retrieval, as well as general issues in and human-computer interaction. I
joined Microsoft Research in July 1997. I work on a wide variety of
information access and management issues, including: personal information
management, web search, question answering, information retrieval, text
categorization, collaborative filtering, interfaces for improved search and
navigation, and user/task modeling.

Prior to coming to Microsoft, I worked on a statistical method for
concept-based retrieval known as Latent Semantic Indexing. You can find
pointers to this work on the Bellcore (now Telcordia) LSI page. 

===============
UIUC Information Retrieval Group
http://sifaka.cs.uiuc.edu/ir/

The Information Retrieval (IR) group is part of the Database and Information
Systems (DAIS) Lab  of the Computer Science Department at University of
Illinois at Urbana-Champaign. We work on a wide spectrum of problems in the
general area of text information management, including  retrieval,
organization, filtering , and mining of textual information, aiming at
developing advanced text information management techniques and systems that
help people make better use of text information.

------
ChengXiang Zhai, 
http://www-faculty.cs.uiuc.edu/~czhai/

Research Interests: Information Retrieval, Text Mining, Natural Language
Processing, Bioinformatics

University of Illinois at Urbana-Champaign, is recognized for
his work on user-centered, adaptive intelligent information access. His
techniques expect to improve search-engine performance, support better
information organization and enable understanding of large volumes of
information. Zhai's work in information retrieval is expected to enhance
curricula and provide new educational tools for the growing information
technology workforce.

===============
Stephen Robertson, 
http://research.microsoft.com/users/robertson/

Stephen Robertson joined Microsoft Research Cambridge in April 1998.

In 1998, he was awarded the Tony Kent STRIX award by the Institute of
Information Scientists. In 2000, he was awarded the Salton Award by ACM SIGIR.
He is a Fellow of Girton College, Cambridge.

At Microsoft, he runs a group called Information Retrieval and Analysis, which
is concerned with core search processes such as term weighting, document
scoring and ranking algorithms, and combination of evidence from different
sources. These are studied theoretically through the use of formal models,
mainly statistical, and statistical methods including machine learning
methods, and experimentally, through activities such as the Text Retrieval
Conference (TREC) and with internally generated evaluation sets. The group
(with its Keenbow evaluation environment) has had some excellent results at
TREC. The group works closely with product groups to transfer ideas and
techniques.

His main research interests are in the design and evaluation of retrieval
systems. He is the author, jointly with Karen Sparck Jones, of a probabilistic
theory of information retrieval, which has been moderately influential. A
further development of that model, with Stephen Walker, led to the term
weighting and document ranking function known as Okapi BM25, which is used in
many experimental text retrieval systems.

Prior to joining Microsoft, he was at City University London, where he retains
a part-time position as Professor of Information Systems in the Department of
Information Science (homepage). He was Head of Department for eight years,
during which time it achieved the highest possible rating in two successive
research assessment exercises. He also started the Centre for Interactive
Systems Research, the main research vehicle of which is the Okapi text
retrieval system, which has also done well at TREC.

Before joining City, he was a research fellow at University College London,
where he took his PhD in the School of Library Archive and Information
Studies. Before that he was in the research department at Aslib. He has an MSc
in Information Science from City and a first degree in mathematics from
Cambridge. 

===================
Nick Craswell
http://research.microsoft.com/~nickcr

I am an associate researcher at Microsoft Research Cambridge, in the
Information Retrieval and Analysis Group.

Research Overview

I am interested in Web search evaluation, mostly on enterprise-scale webs but
also the World Wide Web. I built the VLC, VLC2, WT2g and .GOV test
collections, which have been made available to research groups around the
world. David Hawking and I coordinated the TREC Web Track experiments. I am
currently involved in the TREC Terabyte Track and Enterprise Track. Some
publications: Book chapter preprint (pdf), IR'01 (citeseer) and CSIRO'01
(pdf).

I also work on effective Web search, which means making use of information in
pages, link structure and URL structure to generate more useful Web search
results. Some papers: SIGIR'05 (pdf), SIGIR'01 (pdf), TOIS'03 (pdf) (copying
is by permission of ACM, Inc.) and ADCS'03 (pdf).

My PhD was in distributed information retrieval (thesis pdf) which means
building a system on top of multiple engines/databases that already exist. My
recent work in the area has considered whether (or when) DIR is really
practical. Some papers: ADC'99 (ps), DL'00 (pdf), ADC'03 (pdf) and ADC'04
(pdf). 

===============
Web Search &amp; Data Mining Group of MSR Asia
http://research.microsoft.com/wsm/

The goal of the Web Search &amp; Data Mining Group of MSR Asia is to drive the
next generation of Web search by leveraging data mining, machine learning, and
knowledge discovery techniques for information analysis, organization,
retrieval, and visualization. In addition, in contrast with current Web search
methods, which essentially do document-level ranking and retrieval, the Web
Search &amp; Data Mining Group has created search at the object level to bring
increased knowledge and intelligence to users.

A Glimpse at Several Core Innovations:

Large-scale Experimental Web Search Platform

The Web Search &amp; Data Mining Group is creating a large scale search platform
to efficiently store, parse, index and search billions of Web pages and other
types of documents. The search platform is flexible enough to allow for
testing of various state-of-the-art search techniques that have been created
at the lab using new technologies.

Structuralizing the Web

The biggest challenge facing both users and search engines over the next
several decades is the continued unstructured growth of the Internet. As such,
search functions that can effectively and efficiently dig out
machine-understandable information and knowledge layers from unorganized and
unstructured Web data will be the key to supporting relevant search results.
To meet this challenge, the group is exploring technologies, namely Web
information extraction, deep Web mining, and Web structure mining that can
automatically classify structures and extract objects from the Web. The
information and knowledge gathered using these new techniques greatly improves
the performance of current Web search and even facilitates the creation of
more sophisticated next generation search technologies.

Vertical Search

Today's conventional search engines can be described as page-level search
engines whose main function is to rank web pages according to their relevance
to a given query. Driving the future of the search industry are functions that
delve deeper into vertical domains to provide knowledge and intelligence to
query results. At MSR Asia, the Web Search &amp; Data Mining Group is addressing
the greatest challenges faced by vertical search including large scale web
classification, object-level information extraction, object identification and
integration, and object relationship mining and ranking. The results of these
efforts are leading to more advanced search engines that deliver intelligence
and insight to search results.

Mobile Search

The explosive growth of new computing devices such as handheld computers,
Windows Mobile-based PocketPCs, and SmartPhones is driving demand for greater
and more efficient information access. These devices, which leverage the power
of the Web and allow greater access to information than ever before, are still
not capable of performing at the level of a desktop PC. At MSR Asia, the Web
Search &amp; Data Mining Group is inventing new technologies to improve the mobile
search and browsing experience and deliver the capabilities of a PC to users
of these new devices. Project initiatives include developing innovative
presentation schemes and user interfaces to facilitate search and browsing
tasks on mobile devices and developing context aware search technologies to
address the special information needs of mobile users.

Multimedia Search

The Web Search &amp; Data Mining Group is conducting research into new
technologies that index multimedia content such as images, videos, and audio.
Through content analysis and advanced visualization techniques, the group is
transforming today's conventional text based search engines to include
multimedia content thus delivering more intelligent search results to users.
For example, the group recently developed a new multimedia news reader which
mines large archival news databases presenting text, map information, images,
and background music within a unique user interface providing readers with a
more efficient news search engine and a more enjoyable reading experience.

------
Wei-Ying Ma
http://research.microsoft.com/users/wyma/

Senior Researcher, Research Manager, Microsoft Research Asia

Dr. Wei-Ying Ma received the B.S. degree in electrical engineering from the
National Tsing Hua University in Taiwan in 1990, and the M.S. and Ph.D.
degrees in electrical and computer engineering from the University of
California at Santa Barbara in 1994 and 1997, respectively. From 1994 to 1997
he was engaged in the Alexandria Digital Library (ADL) project in UCSB while
completing his Ph.D. He developed a web-based image retrieval system called
Netra which has been frequently cited by other researchers and is regarded as
one of the most representative image retrieval systems. From 1997 to 2001, he
was with HP Labs where he worked in the field of multimedia adaptation and
distributed media services infrastructure. He joined Microsoft Research Asia
in 2001. Since then, he has been leading a research group to conduct research
in the areas of information retrieval, web search, data mining, mobile
browsing, and multimedia management. He currently serves as an Editor for the
ACM/Springer Multimedia Systems Journal and Associate Editor for ACM
Transactions on Information System (TOIS). He has served on the organizing and
program committees of many international conferences including ACM Multimedia,
ACM SIGIR, ACM CIKM, WWW, ICME, CVPR, SPIE Multimedia Storage and Archiving
Systems, SPIE Multimedia Communication and Networking, etc. He is also the
general co-chair of International Multimedia Modeling (MMM) Conference 2005
and International Conference on Image and Video Retrieval (CIVR) 2005. He has
published 5 book chapters and over 100 international journal and conference
papers.

====================
Google Labs
http://labs.google.com/

Google Labs is a playground for Google engineers and adventurous Google users.
Google staffers with wild and crazy ideas post their prototypes on Google Labs
and solicit feedback on how the technology could be used or improved. None of
these experiments are guaranteed to make it onto Google.com, as this is really
the first phase in the development process. Google users with a desire to jump
over the cutting edge are invited to check out any or all of the posted
prototypes and send their comments directly to the Googlers who developed
them. Please, remember to wear your safety goggles while using this site.

Labs.google.com, Google's technology playground.
Google labs showcases a few of our favorite ideas that aren't quite ready for
prime time. Your feedback can help us improve them. Please play with these
prototypes and send your comments directly to the Googlers who developed them. 

Want to learn more about Google technology? Here are some papers.
http://labs.google.com/papers/index.html

Passionate about these topics? You should work at Google.
algorithms, artificial intelligence, compiler optimization,
computer architecture, computer graphics,
data compression, data mining, file system design,
genetic algorithms, information retrieval,
machine learning, natural language processing, operating systems,
profiling, robotics, 
text processing, user interface design,
web information retrieval, and more! 

http://www.google.com/press/podium.html
Google Press Center: The Google Podium
 Here you'll find a selection of public presentations made by Google
executives. From time to time, we will continue to add transcripts, audio or
video clips and links to presentations hosted elsewhere.

====================
Jon Kleinberg
http://www.cs.cornell.edu/home/kleinber/

Professor of Computer Science, Cornell University

My research is concerned with algorithms that exploit the combinatorial
structure of networks and information. My recent work has included
* link analysis and modeling of the World Wide Web and related information networks;
* discrete optimization and network algorithms; and
* algorithmic approaches to clustering, indexing, and data mining. 
====================
</FONT></PRE>]]></description>
</item><item>
<title><![CDATA[FS包实现]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30855</link>
<author>bg1011</author>
<pubDate>2007/12/28 22:12:40</pubDate>
<description><![CDATA[<A><FONT size=4>　</FONT></A><A><FONT size=4>在此包中，最重要的是FileSystem抽象类。它定义了文件系统中涉及的一些基本操作，如：create，rename，delete...另外包括一些分布式文件系统具有的操作：copyFromLocalFile, copyToLocalFile,...类似于Ftp中put和get操作。 LocalFileSystem和DistributedFileSystem，继承于此类，分别实现了本地文件系统和分布式文件系统。<BR>了解了最重要的类之后，看一看它的一系列stream类：<BR><BR>&nbsp; &nbsp; * FSOutputStream 在原有OutputStream基础之上添加了获得文件指针偏移量的getPos方法。可以通过FileSystem的 createRaw获得它的实例。这里存在一个疑问，这个扩展的getPos方法在fs包中没有被使用。如果在其余包中同样没有被使用，那么扩展就显得多余。<BR><BR>&nbsp; &nbsp; * FSInputStream在原有InputStream基础之上同样添加了getPos方法，同时可以通过 seek方法定位指定的偏移量处。可以通过 FileSystem的openRaw获得它的实例。新添加的getPos和seek方法在FSDataInputStream类中被使用。<BR><BR>&nbsp; &nbsp; * FSDataOutputStream继承于DataOutputStream，包装了FSOutputStream。与DataOutputStream相比，不同之处在于：<BR><BR>&nbsp; &nbsp;1. 添加了getPos方法，它是利用PositonCache记录当前的position<BR>&nbsp; &nbsp;2. 通过Buffer内类对输出进行缓存处理，改进性能<BR>&nbsp; &nbsp;3. 可以构建具有checksum的流，保证数据的正确性<BR><BR>&nbsp; &nbsp; * FSDataInputStram继承于DataInputStream，包装了FSInputStream。与DataInputStream相比，不同之处在于：<BR><BR>&nbsp; &nbsp;1. 添加了seek和getPos方法<BR>&nbsp; &nbsp;2. 通过Buffer内类对输入进行缓存处理，改进性能<BR>&nbsp; &nbsp;3. 可以构建具有checksum的流，保证数据的正确性<BR><BR>另外，为了屏蔽Windows和Unix、Linux在路径处理上存在的差异，实现了Path类，提供了统一的处理方式。<BR></FONT></A>]]></description>
</item><item>
<title><![CDATA[Hadoop--海量文件的分布式计算处理方案]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30854</link>
<author>bg1011</author>
<pubDate>2007/12/28 22:09:26</pubDate>
<description><![CDATA[Hadoop 是Google <A href="http://avindev.googlepages.com/mapreduce.doc">MapReduce</A>的一个Java实现。MapReduce是一种简化的分布式编程模式，让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样， MapReduce的run-time系统会解决输入数据的分布细节，跨越机器集群的程序执行调度，处理机器的失效，并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验，就可以处理超大的分布式系统得资源。 
<H2>&nbsp;&nbsp;&nbsp; 一、概论</H2>
<P>&nbsp;&nbsp;&nbsp; 作为Hadoop程序员，他要做的事情就是：<BR>&nbsp;&nbsp;&nbsp; 1、定义Mapper，处理输入的Key-Value对，输出中间结果。<BR>&nbsp;&nbsp;&nbsp; 2、定义Reducer，可选，对中间结果进行规约，输出最终结果。<BR>&nbsp;&nbsp;&nbsp; 3、定义InputFormat 和OutputFormat，可选，InputFormat将每行输入文件的内容转换为Java类供Mapper函数使用，不定义时默认为String。<BR>&nbsp;&nbsp;&nbsp; 4、定义main函数，在里面定义一个Job并运行它。<BR>&nbsp;&nbsp;&nbsp; </P>
<P>&nbsp;&nbsp;&nbsp; 然后的事情就交给系统了。<BR>&nbsp;&nbsp;&nbsp; 1.基本概念：Hadoop的HDFS实现了google的GFS文件系统，NameNode作为文件系统的负责调度运行在master，DataNode运行在每个机器上。同时Hadoop实现了Google的MapReduce，JobTracker作为MapReduce的总调度运行在master，TaskTracker则运行在每个机器上执行Task。<BR><BR>&nbsp;&nbsp;&nbsp; 2.main()函数，创建JobConf，定义Mapper，Reducer，Input/OutputFormat 和输入输出文件目录，最后把Job提交給JobTracker，等待Job结束。<BR><BR>&nbsp;&nbsp;&nbsp; 3.JobTracker，创建一个InputFormat的实例，调用它的getSplits()方法，把输入目录的文件拆分成FileSplist作为Mapper task 的输入，生成Mapper task加入Queue。<BR><BR>&nbsp;&nbsp;&nbsp; 4.TaskTracker 向 JobTracker索求下一个Map/Reduce。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mapper Task先从InputFormat创建RecordReader，循环读入FileSplits的内容生成Key与Value，传给Mapper函数，处理完后中间结果写成SequenceFile.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reducer Task 从运行Mapper的TaskTracker的Jetty上使用http协议获取所需的中间内容（33%），Sort/Merge后（66%），执行Reducer函数，最后按照OutputFormat写入结果目录。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TaskTracker 每10秒向JobTracker报告一次运行情况，每完成一个Task10秒后，就会向JobTracker索求下一个Task。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nutch项目的全部数据处理都构建在Hadoop之上，详见<A href="http://wiki.apache.org/lucene-hadoop-data/attachments/HadoopPresentations/attachments/yahoo-sds.pdf">Scalable Computing with Hadoop</A>。</P>
<H2><BR>&nbsp;&nbsp;&nbsp; 二、程序员编写的代码</H2>
<P>&nbsp;&nbsp;&nbsp; 我们做一个简单的分布式的Grep，简单对输入文件进行逐行的正则匹配，如果符合就将该行打印到输出文件。因为是简单的全部输出，所以我们只要写Mapper函数，不用写Reducer函数，也不用定义Input/Output Format。</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">package</SPAN> <SPAN style="COLOR: #000000">&nbsp;demo.hadoop<BR></SPAN><SPAN style="COLOR: #0000ff"><BR>public</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">class</SPAN> <SPAN style="COLOR: #000000">&nbsp;HadoopGrep&nbsp;{<BR><BR>&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">public</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">static</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">class</SPAN> <SPAN style="COLOR: #000000">&nbsp;RegMapper&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">extends</SPAN> <SPAN style="COLOR: #000000">&nbsp;MapReduceBase&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">implements</SPAN> <SPAN style="COLOR: #000000">&nbsp;Mapper&nbsp;{<BR><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">private</SPAN> <SPAN style="COLOR: #000000">&nbsp;Pattern&nbsp;pattern;<BR><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">public</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">void</SPAN> <SPAN style="COLOR: #000000">&nbsp;configure(JobConf&nbsp;job)&nbsp;{<BR>&nbsp;&nbsp;&nbsp;pattern&nbsp;</SPAN> <SPAN style="COLOR: #000000">=</SPAN> <SPAN style="COLOR: #000000">&nbsp;Pattern.compile(job.get(</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">mapred.mapper.regex</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">));<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">public</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">void</SPAN> <SPAN style="COLOR: #000000">&nbsp;map(WritableComparable&nbsp;key,&nbsp;Writable&nbsp;value,&nbsp;OutputCollector&nbsp;output,&nbsp;Reporter&nbsp;reporter)<BR>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">throws</SPAN> <SPAN style="COLOR: #000000">&nbsp;IOException&nbsp;{<BR>&nbsp;&nbsp;&nbsp;String&nbsp;text&nbsp;</SPAN> <SPAN style="COLOR: #000000">=</SPAN> <SPAN style="COLOR: #000000">&nbsp;((Text)&nbsp;value).toString();<BR>&nbsp;&nbsp;&nbsp;Matcher&nbsp;matcher&nbsp;</SPAN> <SPAN style="COLOR: #000000">=</SPAN> <SPAN style="COLOR: #000000">&nbsp;pattern.matcher(text);<BR>&nbsp;&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">if</SPAN> <SPAN style="COLOR: #000000">&nbsp;(matcher.find())&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;output.collect(key,&nbsp;value);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR><BR>&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">private</SPAN> <SPAN style="COLOR: #000000">&nbsp;HadoopGrep&nbsp;()&nbsp;{<BR>&nbsp;}&nbsp;</SPAN> <SPAN style="COLOR: #008000">//</SPAN> <SPAN style="COLOR: #008000">&nbsp;singleton</SPAN> <SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">public</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">static</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">void</SPAN> <SPAN style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">throws</SPAN> <SPAN style="COLOR: #000000">&nbsp;Exception&nbsp;{<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;JobConf&nbsp;grepJob&nbsp;</SPAN> <SPAN style="COLOR: #000000">=</SPAN> <SPAN style="COLOR: #000000">&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">new</SPAN> <SPAN style="COLOR: #000000">&nbsp;JobConf(HadoopGrep.</SPAN> <SPAN style="COLOR: #0000ff">class</SPAN> <SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;grepJob.setJobName(</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">grep-search</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;grepJob.set(</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">mapred.mapper.regex</SPAN> <SPAN style="COLOR: #000000">"</SPAN> <SPAN style="COLOR: #000000">,&nbsp;args[</SPAN> <SPAN style="COLOR: #000000">2</SPAN> <SPAN style="COLOR: #000000">]);<BR><BR>&nbsp;&nbsp;grepJob.setInputPath(</SPAN> <SPAN style="COLOR: #0000ff">new</SPAN> <SPAN style="COLOR: #000000">&nbsp;Path(args[</SPAN> <SPAN style="COLOR: #000000">0</SPAN> <SPAN style="COLOR: #000000">]));<BR>&nbsp;&nbsp;grepJob.setOutputPath(</SPAN> <SPAN style="COLOR: #0000ff">new</SPAN> <SPAN style="COLOR: #000000">&nbsp;Path(args[</SPAN> <SPAN style="COLOR: #000000">1</SPAN> <SPAN style="COLOR: #000000">]));<BR>&nbsp;&nbsp;grepJob.setMapperClass(RegMapper.</SPAN> <SPAN style="COLOR: #0000ff">class</SPAN> <SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;grepJob.setReducerClass(IdentityReducer.</SPAN> <SPAN style="COLOR: #0000ff">class</SPAN> <SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;JobClient.runJob(grepJob);<BR>&nbsp;}<BR>}<BR></SPAN></DIV>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RegMapper类的configure()函数接受由main函数传入的查找字符串，map() 函数进行正则匹配，key是行数，value是文件行的内容，符合的文件行放入中间结果。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main()函数定义由命令行参数传入的输入输出目录和匹配字符串，Mapper函数为RegMapper类，Reduce函数是什么都不做，直接把中间结果输出到最终结果的的IdentityReducer类，运行Job。</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>整个代码非常简单，丝毫没有分布式编程的任何细节。</STRONG></P>
<H2><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 三.运行Hadoop程序</H2>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hadoop这方面的文档写得不全面，综合参考<A href="http://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoop">GettingStartedWithHadoop</A>&nbsp;与<U><FONT color=#800080>Nutch Hadoop Tutorial</FONT></U> 两篇后，再碰了很多钉子才终于完整的跑起来了，记录如下：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR><STRONG>3.1 local运行模式<BR></STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 完全不进行任何分布式计算，不动用任何namenode,datanode的做法，适合一开始做调试代码。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解压hadoop，其中conf目录是配置目录，hadoop的配置文件在hadoop-default.xml，如果要修改配置，不是直接修改该文件，而是修改hadoop-site.xml，将该属性在hadoop-site.xml里重新赋值。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hadoop-default.xml的默认配置已经是local运行，不用任何修改，配置目录里唯一必须修改的是hadoop-env.sh 里<FONT face="Courier New">JAVA_HOME</FONT>的位置。</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将编译好的HadoopGrep与RegMapper.class 放入hadoop/build/classes/demo/hadoop/目录 找一个比较大的log文件放入一个目录，然后运行<BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hadoop</SPAN> <SPAN style="COLOR: #000000">/</SPAN> <SPAN style="COLOR: #000000">bin</SPAN> <SPAN style="COLOR: #000000">/</SPAN> <SPAN style="COLOR: #000000">hadoop&nbsp;demo.hadoop.HadoopGrep&nbsp;log文件所在目录&nbsp;任意的输出目录&nbsp;grep的字符串</SPAN> </DIV>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查看输出目录的结果，查看hadoop/logs/里的运行日志。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 在重新运行前，先删掉输出目录。<BR>&nbsp; </P>
<P><STRONG>3.2 单机集群运行模式</STRONG> </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在来搞一下只有单机的集群.假设以完成3.1中的设置，本机名为hadoopserver<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第1步.&nbsp;&nbsp;&nbsp; 然后修改hadoop-site.xml ，加入如下内容：</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">fs.default.name</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">hadoopserver:9000</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">mapred.job.tracker</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">hadoopserver:9001</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">dfs.replication</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">name</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN> <SPAN style="COLOR: #0000ff">&lt;</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000">1</SPAN> <SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">value</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN> <SPAN style="COLOR: #800000">property</SPAN> <SPAN style="COLOR: #0000ff">&gt;</SPAN> </DIV>
<P><BR>&nbsp;&nbsp;&nbsp; 从此就将运行从local文件系统转向了hadoop的hdfs系统，mapreduce的jobtracker也从local的进程内操作变成了分布式的任务系统，9000，9001两个端口号是随便选择的两个空余端口号。<BR>&nbsp; <BR>&nbsp; 另外，如果你的/tmp目录不够大，可能还要修改hadoop.tmp.dir属性。</P>
<P><BR>&nbsp; 第2步. 增加ssh不输入密码即可登陆。<BR><BR>&nbsp;&nbsp;&nbsp; 因为Hadoop需要不用输入密码的ssh来进行调度，在不su的状态下，在自己的home目录运行ssh-keygen -t rsa ,然后一路回车生成密钥，再进入.ssh目录,cp id_rsa.pub authorized_keys<BR>&nbsp;&nbsp;&nbsp; 详细可以man 一下ssh, 此时执行ssh hadoopserver，不需要输入任何密码就能进入了。</P>
<P>&nbsp; 3.格式化namenode，执行<BR>&nbsp;&nbsp;bin/hadoop namenode -format<BR><BR>&nbsp; 4.启动Hadoop<BR>&nbsp;&nbsp;&nbsp;&nbsp; 执行hadoop/bin/start-all.sh, 在本机启动namenode,datanode,jobtracker,tasktracker<BR>&nbsp; <BR>&nbsp; 5.现在将待查找的log文件放入hdfs,。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;执行hadoop/bin/hadoop dfs 可以看到它所支持的文件操作指令。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;执行hadoop/bin/hadoop dfs put log文件所在目录 in ，则log文件目录已放入hdfs的/user/user-name/in 目录中</P>
<P>&nbsp; 6.现在来执行Grep操作<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hadoop/bin/hadoop demo.hadoop.HadoopGrep in out<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看hadoop/logs/里的运行日志，重新执行前。运行hadoop/bin/hadoop dfs rmr out 删除out目录。<BR><BR>&nbsp; 7.运行hadoop/bin/stop-all.sh 结束</P>
<P><STRONG>&nbsp; 3.3 集群运行模式<BR></STRONG>&nbsp; 假设已执行完3.2的配置，假设第2台机器名是hadoopserver2<BR>&nbsp; 1.创建与hadoopserver同样的执行用户，将hadoop解压到相同的目录。<BR><BR>&nbsp; 2.同样的修改haoop-env.sh中的JAVA_HOME 及修改与3.2同样的hadoop-site.xml<BR><BR>&nbsp; 3. 将hadoopserver中的/home/username/.ssh/authorized_keys 复制到hadoopserver2,保证hadoopserver可以无需密码登陆hadoopserver2<BR>&nbsp;&nbsp;&nbsp;&nbsp; scp /home/username/.ssh/authorized_keys&nbsp; <A href="mailto:username@hadoopserver2:/home/username/.ssh/authorized_keys">username@hadoopserver2:/home/username/.ssh/authorized_keys</A><BR>&nbsp;<BR>&nbsp; 4.修改hadoop-server的hadoop/conf/slaves文件, 增加集群的节点，将localhost改为<BR>&nbsp;&nbsp;&nbsp; hadoop-server<BR>&nbsp;&nbsp;&nbsp; hadoop-server2<BR><BR>&nbsp; 5.在hadoop-server执行hadoop/bin/start-all.sh<BR>&nbsp;&nbsp; 将会在hadoop-server启动namenode,datanode,jobtracker,tasktracker<BR>&nbsp;&nbsp; 在hadoop-server2启动datanode 和tasktracker<BR>&nbsp; <BR>&nbsp; 6.现在来执行Grep操作<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hadoop/bin/hadoop demo.hadoop.HadoopGrep in out<BR>&nbsp;&nbsp;&nbsp; 重新执行前,运行hadoop/bin/hadoop dfs rmr out 删除out目录<BR><BR>&nbsp; 7.运行hadoop/bin/stop-all.sh 结束。<BR>&nbsp;&nbsp;&nbsp; </P>
<H2>四、效率</H2>
<P>&nbsp;&nbsp; &nbsp;经测试，Hadoop并不是万用灵丹，很取决于文件的大小和数量，处理的复杂度以及群集机器的数量，相连的带宽，当以上四者并不大时，hadoop优势并不明显。<BR>&nbsp;&nbsp; &nbsp;比如，不用hadoop用java写的简单grep函数处理100M的log文件只要4秒，用了hadoop local的方式运行是14秒，用了hadoop单机集群的方式是30秒，用双机集群10M网口的话更慢，慢到不好意思说出来的地步。</P>]]></description>
</item><item>
<title><![CDATA[Hadoop In Action 2]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30853</link>
<author>bg1011</author>
<pubDate>2007/12/28 22:06:20</pubDate>
<description><![CDATA[<A><FONT size=4>　</FONT></A>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><A><FONT size=4>Hadoop 的文件系统，最重要是 FileSystem 类，以及它的两个子类 LocalFileSystem 和 DistributedFileSystem。 这里先分析 FileSystem。<BR>抽象类 FileSystem，提高了一系列对文件/目录操作的接口，还有一些辅助方法。分别说明一下:<BR>1. open，create，delete，rename等，非abstract，部分返回 FSDataOutputStream，作为流进行处理。<BR>2. openRaw，createRaw，renameRaw，deleteRaw等，abstract，部分返回 FSInputStream，可以随机访问。<BR>3. lock，release，copyFromLocalFile，moveFromLocalFile，copyToLocalFile 等abstract method，提供便利作用，从方法命名可以看出作用。<BR>特别说明，Hadoop的文件系统，每个文件都有一个checksum，一个crc文件。因此FileSystem里面的部分代码对此进行了特别的处理，比如 rename。<BR>LocalFileSystem 和 DistributedFileSystem，理应对用户透明，这里不多做分析，和 FSDataInputStream，FSInputStream 结合一起说明一下。<BR>查看两个子类的 getFileCacheHints 方法，可以看到 LocalFileSystem 是使用'localhost'来命名，这里暂且估计两个FileSystem都是通过网络进行数据通讯，一个是Internet，一个是Intranet。<BR>LocalFileSystem 里面有两个内部类 LocalFSFileInputStream和LocalFSFileOutputStream，查看代码可以看到它是使用 FileChannel进行操作的。另外 lock和release 两个方法使用了TreeMap来保存文件和对应的锁。<BR>DistributedFileSystem 代码量少于 LocalFileSystem，但是更加复杂，它里面使用了 DFSClient 来进行分布式文件系统的操作:<BR>&nbsp; &nbsp; public DistributedFileSystem(InetSocketAddress namenode, Configuration conf) throws IOException<BR>&nbsp; &nbsp; {<BR>&nbsp; &nbsp;&nbsp; &nbsp;super(conf);<BR>&nbsp; &nbsp;&nbsp; &nbsp;this.dfs = new DFSClient(namenode, conf);<BR>&nbsp; &nbsp;&nbsp; &nbsp;this.name = namenode.getHostName() + ":" + namenode.getPort();<BR>&nbsp; &nbsp; } <BR>DFSClient 类接收一个InetSocketAddress 和Configuration 作为输入，对网络传输细节进行了封装。DistributedFileSystem中绝大多数方法都是调用DFSClient进行处理，它只是一个 Warpper。下面着重分析DFSClient。<BR>DFSClient中，主要使用RPC来进行网络的通讯，而不是直接在内部使用Socket。如果要详细了解传输细节，可以查看 org.apache.hadoop.ipc 这个包里面的3个Class。<BR>DFSClient 中的路径，基本上都是UTF8类型，而非String，在DistributedFileSystem中，通过getPath和getDFSPath来转换，这样做可以保证路径格式的标准和数据传输的一致性。<BR>DFSClient 中的大多数方法，也是直接委托ClientProtocol类型的namenode来执行，这里主要分析其它方法。<BR>LeaseChecker 内部类。一个守护线程，定期对namenode进行renewLease操作，注释说明:<BR>Client programs can cause stateful changes in the NameNode that affect other clients. A client may obtain a file and neither abandon nor complete it. A client might hold a series of locks that prevent other clients from proceeding. <B>Clearly, it would be bad if a client held a bunch of locks that it never gave up. This can happen easily if the client dies unexpectedly. So, the NameNode will revoke the locks and live file-creates for clients that it thinks have died.</B> A client tells the NameNode that it is still alive by periodically calling renewLease(). If a certain amount of time passes since the last call to renewLease(), the NameNode assumes the client has died. <BR>作用是对client进行心跳监测，若client挂掉了，执行解锁操作。<BR>DFSInputStream 和 DFSOutputStream，比LocalFileSystem里面的更为复杂，也是通过 ClientProtocol 进行操作，里面使用到了 org.apache.hadoop.dfs 包中的数据结构，如DataNode，Block等，这里不对这些细节进行分析。<BR><BR>对FileSystem的分析(1)到此结束，个人感觉它的封装还是做的不错的，从Nutch项目分离出来后，比原先更为清晰。 下面就接着进行MapReduce的第二部分分析，从MapReduce如何进行分布式</FONT></A></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[Lucene索引及其优化研究]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30850</link>
<author>bg1011</author>
<pubDate>2007/12/28 21:58:46</pubDate>
<description><![CDATA[
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 18pt"><FONT face="Times New Roman">Lucene</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引机制及其优化策略研究</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 18pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（西安电子科技大学电子工程学院　西安</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> 710071</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">2</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（西安电子科技大学经济管理学院　西安</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> 710071</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【摘要】</SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在对</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的索引机制进行分析的基础上，对其在索引的构建策略，索引数据结构，排序算法，中文分词等方面进行优化改进，以期可以适应于大规模信息的索引处理。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【关键词</SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">】</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">倒排索引</SPAN><SPAN style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">搜索引擎</SPAN><SPAN style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">全文检索</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">1 </FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">引言</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是基于</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">java</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的高性能的全文检索工具包，其提供了一组功能强大的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">API</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在此基础上程序员可以快速方便的构建全文检索系统。此外，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还可以嵌入到其它的应用系统中，根据具体的应用环境，实现全文检索功能。实践证明</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以胜任一些大型的应用</SPAN><SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">[1,2,4]</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Apache</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组织网站的检索系统是构建在</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之上的，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">IBM</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Eclipse</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">WebSphere</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也采用</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">全文索引系统，而且</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了丰富的接口，应用程序员可以根据需要进行扩展，加入适合实际需求的新功能。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文中的第二部分探讨了</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引机制，针对索引的数据组织结构和构建流程等进行了分析；第三部分给出了一下索引的优化策略，分别就内存缓存，索引的压缩编码，中文的处理技术和排序算法给出了相关的优化方案；最后是总结和展望以及对下一步的研究。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">2 Lucene</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引机制</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US><FONT face="Times New Roman">2.1 Lucene</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引基本原理</SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一组全文检索</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">API</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引中，其基本的概念为词（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Term</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、域（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Field</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、文档（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Document</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、段（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Segment</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、索引（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Index</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），它们之间的关系如图</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示</SPAN><SUP><SPAN lang=EN-US><FONT face="Times New Roman">[3]</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 style="WIDTH: 241.5pt; HEIGHT: 87.75pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image001.emz"></v:imagedata></v:shape></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">1 <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引的组织结构</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face="Times New Roman"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Index</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）由若干的段（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Segment</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）组成，每个段都是一个子索引，段中包括若干的文档（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Document</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），文档代表检索结果的一个实体，比如网页等，文档又由域（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Field</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）组成，域是词（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Term</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）的集合，词是索引的最小单位，就是文档中的单词，而域就是就有一定属性关系的词的集合，比如</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">URL</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，作者，标题等都可以设置为域。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">采用倒排索引的全文索引策略，其索引的数据结构为（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Term</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DocId</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">frq</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">pos</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">））</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">…</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在图</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，给出了</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">索引工具包的系统架构图，由图可以看出，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Lucene</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由索引核心，对外接口，基础结构类模块组成，主要分为七个包，分别负责索引的构建，索引的存储，文档的分析，查询接口，文档的解析，一些实用类集合，索引的数据结构等</SPAN><SUP><SPAN lang=EN-US><FONT face="Times New Roman">[5]</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US><v:shape id=_x0000_i1026 style="WIDTH: 238.5pt; HEIGHT: 104.25pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image003.emz"></v:imagedata></v:shape></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">2 Lucene</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统架构</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"><o:p></o:p></FONT></SPAN>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[基于BF的大规模网页去重策略研究1]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=bg1011&amp;id=30846</link>
<author>bg1011</author>
<pubDate>2007/12/28 21:51:15</pubDate>
<description><![CDATA[
<DIV class=Section1 style="LAYOUT-GRID:  15.6pt none">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基于</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 18pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 18pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的大规模网页去重策略研究</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 18pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【摘要】</SPAN></B><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一种空间高效的集合查找和表示算法。针对大规模信息采集，运用</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及其改进算法，在误差允许的条件下，通过</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">URL</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">散列运算可以有效地对同源网页进行去重。实验证明通过对其参数进行合理的调整，可以达到满意的结果。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【关键词</SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">】布隆过滤器，散列函数，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">URL</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，网页去重</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-no-proof: yes">【分类号】</SPAN></B><B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"> </SPAN></B><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-no-proof: yes">TP391.3<SPAN style="COLOR: #999999"><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 14pt"><FONT face="Times New Roman">The Research of large-scale URL Filter Based on Bloom Filter<o:p></o:p></FONT></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【</SPAN><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Abstract</FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">】</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter is a space-saving set search and represent algorithm for large-scale information collection. The Bloom Filter and its improvement algorithm, on the condition of error allowing, can be used to the homology URL page filter through URL Hashing. Experiment has proved that it can achieve satisfactory results through reasonable adjustments of its parameter.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">【</SPAN><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Keywords</FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">】</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Hash Function</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">URL</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">URL<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Filter<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 14pt"><FONT face="Times New Roman">1</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">引言</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 14pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt; mso-char-indent-count: .5"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Web</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">信息的采集，通常是利用网络爬虫等工具去遍历</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">WWW</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它把</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">WWW</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">看作一个以网页为节点，网页间链接为边的超大规模有向图，然后利用图的遍历算法对</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">WWW</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行遍历。在网络遍历的过程中，需要判断待采集的页面是否已经采集过了，这就需要把已经采集的网页地址记录下来，组成已采集网页地址集合（记为：</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">visited-set</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），当新的采集开始之前，首先判断其地址是否在</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">visited-set</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，如在其中，表示网页已经采集，否则采集网页，把网页地址放</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">visited-set</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，从而避免网页的重复采集，浪费资源。为了实现集合中数据的快速查找，需要把</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">URL</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">映射为集合中的地址，这就需要设计一种高效且冲突率低的散列算法；同时由于</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">WWW</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上网页数据的巨大（</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一份报告指出，截止</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">2005</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月份其网页数量至少达到</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">115</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">亿</SPAN><SUP><SPAN lang=EN-US><FONT face="Times New Roman">[1]</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">普通的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Hash</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法已经不能满足空间的要求，所以又需要一种节约空间的算法。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 5.25pt; mso-char-indent-count: .5"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><SPAN style="mso-tab-count: 1"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp; </FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本文运用</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法设计了一种节省空间的大规模数据表示和查找算法，以应对海量信息采集的需求。文章的组织结构为：第</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部分对</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法进行简要的介绍，包括算法思想、误判率计算以及哈希函数选取策略；第</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">3</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部分给出了</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及其改进算法在大规模网页去重策略中的应用；第</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">4</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部分通过实验对</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法在网页去重中的应用给出了可行性分析；第</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">5</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部分进行的总结以及进一步的研究工作。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 14pt"><FONT face="Times New Roman">2 Bloom Filter</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 14pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 14pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">2.1 Bloom Filter</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法简介</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是由巴顿布隆于</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">1970</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年提出的</SPAN><SUP><SPAN lang=EN-US><FONT face="Times New Roman">[2]</FONT></SPAN></SUP><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它实现的基础上是一个很长的二进制位向量和一系列随机散列函数。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一种基于散列的查找算法，用于查找一个元素是否在集合中，和散列表相比，它的优点是节约空间，可以对海量数据集进行表示和查找操作。由于散列函数的随机性，可能使得某个元素不属于集合而被判定属于集合，在此，称其为误判，其大小为误判率</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">P<SUB>err</SUB></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法的基本思想为：</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-no-proof: yes">①</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设数据集合</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">A={a&shy;&shy;<SUB>1</SUB>,a<SUB>2</SUB>,…,a<SUB>n</SUB>}</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，含有</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">n</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个元素，为待操作的集合；</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-no-proof: yes">②</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用一个长度为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">m</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的位向量</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">V</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来表示集合中的元素，位向量初始化全为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">0</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-no-proof: yes">③</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman"> k</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个具有均匀分布特性的散列函数</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">h1 h2,,</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">…</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">,hk </FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，值域均为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">{ 1 , 2 ,</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'MS Mincho'; mso-bidi-font-family: 'MS Mincho'">&#8943;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">, m} </FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-no-proof: yes">④</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman"> </FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于元素的加入操作首先通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">K</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个散列函数产生</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">K</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个随机数</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">h1,h2,…,hk</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，使位串</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">V</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的相应</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">h1,h2,…,hk</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">位均置为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；同理，元素的查找为判定相应位是否全为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><o:p></o:p></SPAN></P></DIV><I style="mso-bidi-font-style: normal"><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><BR style="PAGE-BREAK-BEFORE: always; mso-break-type: section-break" clear=all></SPAN></I>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">2.2 Bloom Filter</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">误差分析</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算法在进行集合的元素表示时，由于通过</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">k</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个散列函数使位向量相应位置</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，经过多次集合元素增加操作后，使得位向量若干位被重复置为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。当新的元素加入集合之前，首先通过集合查找运算判定元素是否在集合中，同样，通过</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">k</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个散列函数的映射到相应的位，如果相应位都为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，则判定元素在集合中，否则判定元素不在集合中。对于已经映射到集合中的元素，显然通过集合查找运算一定可以判定其中集合中，但对于尚未映射到集合中的元素，可能存在误判，即不在集合中的元素误判为在集合中。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面我们对误判率进行分析：</SPAN><SPAN style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> <SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">Bloom Filter</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示方法中，某一位被置为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个概率为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><SPAN style="POSITION: relative; TOP: 13pt; mso-text-raise: -13.0pt"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><FONT face="Times New Roman"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></FONT></v:shapetype><v:shape id=_x0000_i1034 style="WIDTH: 14.25pt; HEIGHT: 28.5pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image001.wmz"></v:imagedata></v:shape></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">0</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的概率为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1-</FONT><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1035 style="WIDTH: 15pt; HEIGHT: 25.5pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image003.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">散列函数共执行了</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">kn</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">次，所以在运算结束时，某位仍为</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">0</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的概率为：</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center; mso-char-indent-count: 2.0" align=center><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">P<SUB>0</SUB>=</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1-</FONT><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1025 style="WIDTH: 15pt; HEIGHT: 30.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image003.wmz"></v:imagedata></FONT></v:shape></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN><SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">kn</FONT></SPAN></SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><SPAN style="POSITION: relative; TOP: 2pt; mso-text-raise: -2.0pt"><v:shape id=_x0000_i1026 style="WIDTH: 9.75pt; HEIGHT: 9.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image006.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">e<SUP>-kn/m</SUP><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">式</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 12pt 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以误判的概率为：</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 12pt 0cm 0pt; TEXT-ALIGN: center" align=center><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">P<SUB>err</SUB>=(1-</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"> P<SUB>0</SUB></SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">)<SUP>k</SUP>=(1-(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">1-</FONT><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1027 style="WIDTH: 15pt; HEIGHT: 30.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image003.wmz"></v:imagedata></FONT></v:shape></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN><SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">kn</FONT></SPAN></SUP><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">))<SUP>k</SUP></FONT><SPAN style="POSITION: relative; TOP: 2pt; mso-text-raise: -2.0pt"><v:shape id=_x0000_i1028 style="WIDTH: 9.75pt; HEIGHT: 9.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image006.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">(1- e<SUP>-kn/m</SUP>)<SUP>k</SUP><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">式</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">2)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 12pt 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当给定</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">k</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">n</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，由式（</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）可知随着</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">m</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的增大</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">P<SUB>err</SUB></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">减小；对于给定的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">n</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">m</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，下面求</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> P<SUB>err</SUB></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的最小值，对式（</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）两端求导，令</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1029 style="WIDTH: 33.75pt; HEIGHT: 29.25pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image008.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">=0</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，可求得当</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman">k=</FONT><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1030 style="WIDTH: 15pt; HEIGHT: 29.25pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image010.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">ln2</FONT><SPAN style="POSITION: relative; TOP: 2pt; mso-text-raise: -2.0pt"><v:shape id=_x0000_i1031 style="WIDTH: 9.75pt; HEIGHT: 9.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image006.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman">0.7</FONT><SPAN style="POSITION: relative; TOP: 12pt; mso-text-raise: -12.0pt"><v:shape id=_x0000_i1032 style="WIDTH: 15pt; HEIGHT: 29.25pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image010.wmz"></v:imagedata></FONT></v:shape></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face="Times New Roman"> P<SUB>err_min</SUB></FONT><SPAN style="POSITION: relative; TOP: 2pt; mso-text-raise: -2.0pt"><v:shape id=_x0000_i1033 style="WIDTH: 9.75pt; HEIGHT: 9.75pt" o:ole="" type="#_x0000_t75"><FONT face="Times New Roman"> <v:imagedata o:title="" src="file:///C:\DOCUME~1\bg\LOCALS~1\Temp\msohtml1\01\clip_image006.wmz"></v:imagedata></FONT></v:shape></SPAN><FONT face="Times New Roman"><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chmetcnv w:st="on" UnitName="m" SourceValue="0.6185" HasSpace="False" Negative="False" NumberType="1" TCSC="0">0.6185<SUP>m</SUP></st1:chmetcnv><SUP>/n</SUP></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为最小的误判率。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">2.3 </FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">散列函数考虑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">散列</SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">(Hashing)</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">是信息表示和查找所用的一项基本技术<SUP><SPAN lang=EN-US>[3]</SPAN></SUP></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">，其</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">优化性能在很大程度上取决于输入键的结构</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">，</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">本文所研究散列的键是用于访问网页的</SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">URL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">。</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">在运用<SPAN lang=EN-US>Bloom Filter</SPAN>算法进行集合的表示和元素的查找过程中，需要对待查找（或表示）的数据进行<SPAN lang=EN-US>k</SPAN>次散列操作，所以散列函数的选取成为了影响系统性能的关键因素。针对<SPAN lang=EN-US>web</SPAN>信息的采集，文献<SPAN lang=EN-US>[4]</SPAN>评价比较了五种<SPAN lang=EN-US>Hash</SPAN>函数，并对它们在<SPAN lang=EN-US>URL</SPAN>映射的性能进行了比较分析，结果显示<SPAN lang=EN-US>Strhash</SPAN>和<SPAN lang=EN-US>Tianlhash</SPAN>的性能较佳。文献<SPAN lang=EN-US>[5]</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 楷体_GB2312"> </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 楷体_GB2312">给出了两种针对<SPAN lang=EN-US>URL</SPAN>散列性能很好的函数，并通过<SPAN lang=EN-US>2000</SPAN>万<SPAN lang=EN-US>URL</SPAN>的实验进行了评价，结果表明</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT face="Times New Roman">,HfIp </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体">都是很可靠的</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT face="Times New Roman">,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体">可以首选使用，并在北大天网搜索引擎系统中得到工程性的检验</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>]]></description>
</item>
</channel>
</rss>