包含为南加州大学 CSCI572 课程完成的作业。
语言: Python 3.7
I/P:查询集及其相应的前 10 名 Google 结果
O/P:比较 Google 和 Bing 结果的每个查询的 Spearman 系数
语言: Java 11
库: crawler4j
I/P :要抓取的网站域名
O/P :获取的 URL 列表及其统计信息
语言: Java 11
库: Apache Hadoop
系统: Google Cloud、Microsoft Azure I/P:要索引的 URL 列表
O/P : URL 的 Unigram 和 Bigram 的索引文件
语言: Java 11、Python 3.7、HTML、CSS、PHP、JavaScript、JQuery
库: Apache Lucene、Apache Solr、Apache Tika、NetworkX、jsoup、PeterNorvig 的 SpellCorrector
功能:
1. 页面排名计算:
使用Java中的jsoup解析爬取网页中的所有链接以创建EdgeList文件。
利用 Python 中的 NetworkX 从 EdgeList 创建有向图并计算所有 URL 的页面排名值。
2.Lucene和Solr设置:
创建了一个 Solr 核心来爬取 html 文件并有效地生成倒排索引。
Solr 中的选择命令检索给定查询的网页。它内部使用 Lucene 的向量空间和布尔模型表示,并使用 TF-IDF 对结果进行排序。
提供了使用之前计算的页面排名值对网页结果进行排序的附加功能。
3. Iditom搜索引擎网页:
开发了一段 PHP 代码作为客户端来获取用户的查询。用户可以选择使用 Lucene 的默认 Ranking 算法或 Page Rank 算法对获取的结果进行排序。使用 Solr 的客户端 API,检索网页结果以进行查询。
提供类似Google 的网络界面。
4. 拼写检查和自动完成:
使用 Apache Tika 对爬网网页中的单词进行解析和预处理后创建了词汇文本文件。
利用 Peter-Norvig 的 SpellCorrector 算法并输入该词汇表来计算编辑距离 1 和 2 的概率。
模仿 Google,向 Iditom 搜索引擎添加了拼写检查功能(显示 __ 的结果,搜索 __ 的结果)。
使用 Solr 的默认自动完成结果,该结果使用模糊工厂查找单词建议。
在此处查看搜索引擎视频 - https://youtu.be/lYZ_SdsIX3A