• 基于Lucene+Java+Python实现的校园搜索引擎系统


    校园搜索引擎实验报告

    目录
    实验环境 1
    实验内容 1
    实现过程 2
    抓取校园网资源并处理 2
    分词处理 3
    词表建立 4
    结果排序 4
    查询提示 5
    查询纠错 5
    关键词高亮 5
    语音输入 5
    快速预览 5
    相关推荐 5
    使用说明 7
    主页 7
    查询推荐 7
    查询提示 8
    查询结果纠错 9
    页面预览 9
    性能评价 9
    概述 9
    查询样例 10
    构建相关性标注集合 10
    性能分析 11
    总结 11
    实验环境
    apache-tomcat-7.0.86 paoding-analysis-2.0.4-beta IDEA ULTIMATE
    win10
    实验内容
    综合运用搜索引擎体系结构和核心算法方面的知识,基于开源资源搭建搜索引擎,具体包括如下几点:
    1.抓取清华校园网内绝大部分资源,并且进行预处理;
    2.基于Lucene实现校园搜索引擎——太强搜索;
    3.加入关键词纠错、查询提示、语音搜索、相关推荐功能,以提高太强搜索的体验;
    4.美化Web界面,实现关键词高亮、快速预览等功能;
    5.完成对于太强搜索的性能评价。
    实现过程
    抓取校园网资源并处理
    使用 Heritrix 抓取工具,抓取 HTML,PDF,M.S.Word 格式的文件28万份,共计31GB。编写 Python 脚本处理抓取到的数据,解析成 json 文件: 首先遍历所有抓取到的 文件,为每一个文件分配一个 ID,文件与 ID 一一对应,ID 用于之后PageRank的计算。获取文件的标题、文本 (docContent)、标签(h1~h6)、加粗(strong)信息等。使用
    BeatifulSoup 库解 析 HTML 文件内容,本文转载自http://www.biyezuopin.vip/onews.asp?id=16729获取其中的超链接,为抓取到的整个数据包构建图结构, 根据图结构计算网页的 PageRank,使用pdfminer库解析pdf文件,使用docx2txt库解析word文件。我们发现实际抓到的html文件给出的charset有时是错误的,因此使用了chardet自动判断网页的编码,这样我们便可以处理几乎所有的编码。

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        String path = request.getContextPath();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>太强搜索</title>
        <link type="text/css" href="css/speech-input.css" rel="stylesheet"/>
        <link type="text/css" href="css/Campus-search.css" rel="stylesheet"/>
        <link type="text/css" href="css/extend.css" rel="stylesheet"/>
        <script type="text/javascript" src="js/speech.js"></script>
        <script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
    
    </head>
    <body>
    <div class="search-layer1">
        <a href="<%=basePath%>CampusSearch.jsp">
            <img src="<%=basePath%>image/logo.jpg" alt="logo" class="search-logo" />
        </a>
    
        <form id="form1" name="form1" method="get" action="servlet/CampusServer">
            <div class="si-wrapper">
                <input id="index_input" type="text" class="search-input" autocomplete="off" name="query" size="50" >
                <button style="display: none"></button>
                <button onclick="startDictation(this,event)">
                    <img class="search-speech" src="image/micro.png">
                </button>
            </div>
    
            <button class="search-button" type="submit" name="Submit">搜索</button>
    
            <div style="text-align: center">
                <div class="search_suggest" id="search_suggest">
                    <ul style="margin: 0px;padding: 0px;">
                    </ul>
                </div>
            </div>
            <%--<input class="search-input" name="query" type="text" size="50" />--%>
    
        </form>
    
    </div>
    
    <script type="text/javascript" src="js/extend.js"></script>
    
    </body>
    </html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Python爬虫在Web应用自动化测试中的应用
    AVR学习笔记之熔丝位
    MyBatisPlus中使用@TableField完成字段自动填充
    扬帆牧哲;如何对shopee合理定价?
    沉思篇-剖析Jetpack的ViewModel
    优化 if else-if else 语句的使用
    MIUI13和MIUI12的录音存储位置
    HTML常用特殊字符:
    人工智能-卷积神经网络之多输入多输出通道
    【软考 系统架构设计师】案例分析⑧ 数据库索引与视图
  • 原文地址:https://blog.csdn.net/newlw/article/details/126827342