Lucene构建网站搜索系统

原创 2011年01月20日 11:03:00

课程描述

随着互联网的快速发展,大大小小的网站每天都在诞生,开发 网站搜索系统成为了网站开发中的一个难题。如果一 个网站没有自己的网站搜索系统,用户将无法从快速增长的内容中找到自己想要的信息。使用中文分词等自然语言处理技术来提高搜索准确度是另外一个需要深入解 决的难题。

 

结下来我们要共同学习的内容,就是要解决这些难题。我们共同来建立一 套“网站搜索系统”,开发语言选择Java ,主要用Lucene和Solr来开发。

 

购买地址:http://www.china-pub.com/3501034

 

项目介绍

项目平台

演示:Resin

语言:Jdk1.6

工具:Eclipse+SqlServer2005

 

涉及知识

语言基础:Html、JavaScript、Jquery、CSS 、Java、SQL 等。

使用框架:Lucene、Solr等。

 

技术亮点

介绍Lucene的使用,中文分词的原理及在Lucene中的应用。 介绍企业搜索工具Solr以及使用优化。

 

功能分析

·    索引数据

·    关键词搜索

·    搜索界面

·    相关搜索词

·    拼音转换

·    输入框智能提示

·    搜索结果分类统计

·    用户搜索日志挖掘

·    Solr搜索服务

<!-- &#x20;/*&#x20;Font&#x20;Definitions&#x20;*/ &#x20;@font-face &nbsp; &nbsp; {font-family:宋体; &nbsp; &nbsp; panose-1:2&#x20;1&#x20;6&#x20;0&#x20;3&#x20;1&#x20;1&#x20;1&#x20;1&#x20;1; &nbsp; &nbsp; mso-font-alt:SimSun; &nbsp; &nbsp; mso-font-charset:134; &nbsp; &nbsp; mso-generic-font-family:auto; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:3&#x20;135135232&#x20;16&#x20;0&#x20;262145&#x20;0;} @font-face &nbsp; &nbsp; {font-family:"Cambria&#x20;Math"; &nbsp; &nbsp; panose-1:2&#x20;4&#x20;5&#x20;3&#x20;5&#x20;4&#x20;6&#x20;3&#x20;2&#x20;4; &nbsp; &nbsp; mso-font-charset:0; &nbsp; &nbsp; mso-generic-font-family:roman; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:-1610611985&#x20;1107304683&#x20;0&#x20;0&#x20;159&#x20;0;} @font-face &nbsp; &nbsp; {font-family:Calibri; &nbsp; &nbsp; panose-1:2&#x20;15&#x20;5&#x20;2&#x20;2&#x20;2&#x20;4&#x20;3&#x20;2&#x20;4; &nbsp; &nbsp; mso-font-charset:0; &nbsp; &nbsp; mso-generic-font-family:swiss; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:-1610611985&#x20;1073750139&#x20;0&#x20;0&#x20;159&#x20;0;} @font-face &nbsp; &nbsp; {font-family:微软雅黑; &nbsp; &nbsp; panose-1:2&#x20;11&#x20;5&#x20;3&#x20;2&#x20;2&#x20;4&#x20;2&#x20;2&#x20;4; &nbsp; &nbsp; mso-font-charset:134; &nbsp; &nbsp; mso-generic-font-family:swiss; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:-2147483001&#x20;705641554&#x20;22&#x20;0&#x20;262175&#x20;0;} @font-face &nbsp; &nbsp; {font-family:Tahoma; &nbsp; &nbsp; panose-1:2&#x20;11&#x20;6&#x20;4&#x20;3&#x20;5&#x20;4&#x20;4&#x20;2&#x20;4; &nbsp; &nbsp; mso-font-charset:0; &nbsp; &nbsp; mso-generic-font-family:swiss; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:1627400839&#x20;-2147483648&#x20;8&#x20;0&#x20;66047&#x20;0;} @font-face &nbsp; &nbsp; {font-family:"/@微软雅黑"; &nbsp; &nbsp; panose-1:2&#x20;11&#x20;5&#x20;3&#x20;2&#x20;2&#x20;4&#x20;2&#x20;2&#x20;4; &nbsp; &nbsp; mso-font-charset:134; &nbsp; &nbsp; mso-generic-font-family:swiss; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:-2147483001&#x20;705641554&#x20;22&#x20;0&#x20;262175&#x20;0;} @font-face &nbsp; &nbsp; {font-family:"/@宋体"; &nbsp; &nbsp; panose-1:2&#x20;1&#x20;6&#x20;0&#x20;3&#x20;1&#x20;1&#x20;1&#x20;1&#x20;1; &nbsp; &nbsp; mso-font-charset:134; &nbsp; &nbsp; mso-generic-font-family:auto; &nbsp; &nbsp; mso-font-pitch:variable; &nbsp; &nbsp; mso-font-signature:3&#x20;135135232&#x20;16&#x20;0&#x20;262145&#x20;0;} &#x20;/*&#x20;Style&#x20;Definitions&#x20;*/ &#x20;p.MsoNormal,&#x20;li.MsoNormal,&#x20;div.MsoNormal &nbsp; &nbsp; {mso-style-unhide:no; &nbsp; &nbsp; mso-style-qformat:yes; &nbsp; &nbsp; mso-style-parent:""; &nbsp; &nbsp; margin:0cm; &nbsp; &nbsp; margin-bottom:.0001pt; &nbsp; &nbsp; text-align:justify; &nbsp; &nbsp; text-justify:inter-ideograph; &nbsp; &nbsp; mso-pagination:none; &nbsp; &nbsp; font-size:10.5pt; &nbsp; &nbsp; mso-bidi-font-size:11.0pt; &nbsp; &nbsp; font-family:"Calibri","sans-serif"; &nbsp; &nbsp; mso-fareast-font-family:宋体; &nbsp; &nbsp; mso-bidi-font-family:"Times&#x20;New&#x20;Roman"; &nbsp; &nbsp; mso-font-kerning:1.0pt;} .MsoChpDefault &nbsp; &nbsp; {mso-style-type:export-only; &nbsp; &nbsp; mso-default-props:yes; &nbsp; &nbsp; font-size:10.0pt; &nbsp; &nbsp; mso-ansi-font-size:10.0pt; &nbsp; &nbsp; mso-bidi-font-size:10.0pt; &nbsp; &nbsp; mso-ascii-font-family:Calibri; &nbsp; &nbsp; mso-fareast-font-family:宋体; &nbsp; &nbsp; mso-hansi-font-family:Calibri; &nbsp; &nbsp; mso-font-kerning:0pt;} &#x20;/*&#x20;Page&#x20;Definitions&#x20;*/ &#x20;@page &nbsp; &nbsp; {mso-page-border-surround-header:no; &nbsp; &nbsp; mso-page-border-surround-footer:no;} @page&#x20;WordSection1 &nbsp; &nbsp; {size:612.0pt&#x20;792.0pt; &nbsp; &nbsp; margin:72.0pt&#x20;90.0pt&#x20;72.0pt&#x20;90.0pt; &nbsp; &nbsp; mso-header-margin:36.0pt; &nbsp; &nbsp; mso-footer-margin:36.0pt; &nbsp; &nbsp; mso-paper-source:0;} div.WordSection1 &nbsp; &nbsp; {page:WordSection1;} -->


Lucene 构建网站搜索系 统》课程计划表

 


序号

培训内容

课时

1

搜索引擎 简介

课程目标:了解如何 使用搜索引擎以及搜索的高级语法。

课程内容:

  搜索引擎的高级语法如 site filetype 等。

    界面布局。

    搜索引擎的总体架构。

    网站搜索的常用功能。

1

2

全文检索与 Lucene 简介

课程目标:了解全文 检索的基本原理与 Lucene 的基本使用。

课程内容:

  倒排索引的原理。

  Lucene 的整体结构、基本概念。

  Lucene 常用 API 的介绍与使用。

2

2

中文分词

课程目标:

l 中文分词的原理。

l Java 实现的中文分词。

课程内容:

  Lucene 中的中文分词。

  中文分词的 常用方法。

  查找词典算法

  中文分词流程与结构

  形成切分词图

  最大概率分词方法

    N 元分词方法

  未登录词识别

  词性标注

5

3

文本分类

课程目标:

  了解基于机器学习的文本分类的原理与实现。

  能够实现朴素贝叶斯 文本分类方法。

    能够实现支持向量机文本分类方法。

课程内容:

  特征提取方法与实现。

  贝叶斯理论的原理。

  朴素贝叶斯文本分类方法与 Java 实 现。

  支持向量机的原理。

  LibSVM 介绍与 Java 实现的文本分类。

  基于规则的文本分类方法与实现。

6

4

实现搜索功能

课程目标:

  掌握搜索基本功能与扩展功能的实现。

课程内容:

  关键词飘红功能。

  输入框智能提示。

  搜索结果分类统计及层次展开功能。

  相关搜索词。

  实现“您是不是要找 ”功 能。

  用户搜索日志挖掘。

8

5

搜索深入优化

课程目标:

  掌握提高搜索性能与改进结果排序的方法。

课程内容:

  索引优化与搜索优化

  实现时间加权排序。

  实现字词混合索引。

2

6

使用 Solr 实现网站搜索

课程目标:

  掌握如何使用 solr 实现前后台分离的网站搜索。

课程内容:

  Solr 的原理与发展历程。

  Solr 基本用法。

  Solr 扩展与定制。包括 ASP.NET 的调用。

3

 

Lucene系列 - 索引(六) - 创建本地搜索的索引

整理记录了在Lucene 4版本中的遍历读取本地文件夹数据,并创建索引的过程。package com.gwu.lucene.tools;import java.io.File; import java...
  • u011389474
  • u011389474
  • 2017年04月06日 16:54
  • 551

构建自己的搜索引擎之Lucene详解

要开发自己的搜索引擎,就不得不用到Apache基金会的Luence项目,这个项目是一个开放源代码的全文检索引擎工具包,利用Lucene,可以很快捷地开发出自己的搜索引擎。...
  • u013029603
  • u013029603
  • 2015年04月17日 22:59
  • 913

Lucene全文搜索原理与使用

本文中主要是对于Lucene全文搜索的基础原理进行简单的分析,以及Lucene实现全文搜索的流程,之后就是Lucene在Java中的最简单使用:创建索引,查询索引库; 本文中使用的Lucene主要是...
  • yangqian201175
  • yangqian201175
  • 2016年05月20日 17:28
  • 16888

基于lucene的搜索方案

说是电子商务搜索架构方案,其实就是lucene.net的应用,公司庙小,人少,也就自己平时看看,以前做过一点例子,这样就被拉上去写架构方案了。我这个懒惰的家伙,在网上疯狂的搜集搜索架构方面的东西,因为...
  • u011966339
  • u011966339
  • 2016年10月31日 17:54
  • 1063

基于Lucene5.4的本地文件搜索系统

利用lucene5.4的API完成一个本地文件的搜索系统,并在tomcat部署
  • toroo_zheng
  • toroo_zheng
  • 2016年02月02日 14:17
  • 1609

Lucene 实现txt文件的构建索引与查询

package net.jqsoft.hecv.util; import net.sf.json.JSONArray; import org.apache.lucene.analysis.Analy...
  • u012535624
  • u012535624
  • 2017年06月14日 18:56
  • 301

【搜索那些事】细谈lucene(一)初识全文资源检索框架lucene

算算差不多有小半年没正儿八经的写博客了,从考完专升本考试就直接参加了工作,工作四个月之后又回来上本科,开学又在校内创办了CSDN高校俱乐部,制定学员学习方向,搞讲座,办公开课,反正一切事情很多。现在开...
  • csh624366188
  • csh624366188
  • 2013年10月13日 10:23
  • 6772

Lucene搜索方式大合集

package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; im...
  • u012443091
  • u012443091
  • 2015年02月25日 22:31
  • 711

Lucene实战(三)多Field搜索,并且对搜索结果进行过滤和[自定义]排序

前言 如果你是一个
  • mthhk008
  • mthhk008
  • 2014年05月16日 15:10
  • 2740

10、索引库的查询四之:Lucene的高级搜索技术

Lucene的高级搜索技术 首先要说的就是 SpanTermQuery ,他和TermQuery用法很相似,唯一区别就是SapnTermQuery可以得到Term的span跨度信息,用法如下: ...
  • u013115157
  • u013115157
  • 2016年12月15日 15:40
  • 743
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: Lucene构建网站搜索系统
举报原因:
原因补充:

(最多只允许输入30个字)