`

搜索功能实现的基本思路

阅读更多

lucene学习

 

搜索功能的实现有两种方法:

其一是使用数据库的like进行模糊查询,其二是使用全文索引lucene

 

 

lucene与数据库like语句相比的优点

 

本项目使用全文索lucene完成产品搜索功能,lucene的优点如下:

 

1. 在数据量比较大,查询字段比较多的情况下,如果采用数据库like  SQL查询,性能比较差,而采用lucene来查询性能相对like sql语句查询好些。

 

 

 

2. 如果采用lucene进行搜索,搜索到的结果相关度比较高,而且把匹配度高的记录排在最前面;而数据库的like语句查询只会查询出含有关键字的记录,其内容相关度不高,并且不能实现匹配度高的记录排在最前面的效果。

 

 

 

3. 使用luence进行搜索,能够对查询的结果进行高亮显示,而数据库的like语名查询出来必须在页面中使用javascript等脚本语言进行高亮显示处理,才能实现高亮显示。

 

 

 

 

 

lucene的简介

 

使用lucene分为两步:1,建立索引,2,查询索引

 

 

 

建立索引和查询索引时都会用到分词技术,常用的分词原理有:

 

1. 一元分词:一个词一个词的分

 

2. 二元分词:两个词两个词的分

 

3. 字典分词:这是一种匹配度最高的分词技术,效果最,使用字典分词必须要建立字典,目前使用最多的中文分词器是一个网友写的paoding (庖丁解牛分词器)

 

 

 

 

 

本项目使用luence完成商品搜索功能但不直接使用 LuceneAPI而是使用了CompassAPI.   CompassLuceneAPI进行了封装.

 

为什么使用CompassAPI而不直接使用LuceneAPI的原因跟,使用hibernate而不使用JDBC的原因是一样的.

 

做软件时一直强调面向对象的思想,我们要操作数据库就使用面向对象的hibernate而不使用拼接SQL语句的方式使用JDBC

 

现在我们要操作的对象是“索引”,所以我们使用的是面向对象的CompassCompass是基于lucene的面向对象的操作索引的产品。

 

 

 

hibernate被称为ORM框架,Compass被和为OSEM产品,

 

关于Compass想知道更多百度或Google去搜吧.

<!--EndFragment-->

<!--EndFragment-->
分享到:
评论

相关推荐

    QT开发的音乐播放器源代码及发布程序(添加了拓展功能)

    这个是实现歌词显示,歌曲拖放等功能的程序,入门级的软件前几天发布上来了,需要的请搜索下载“基于QT的音乐播放器源代码及详细教程(完成最基本功能)”。本附件包含源代码及发布程序。 这CSDN上传资源真纠结,...

    电子商务交易系统的设计与实现(附完整代码+毕业论文--答辩最终版)

    该系统是一个基于Java EE规范B/S架构下的WEB电子商务系统,采用MySQL作为后台数据库,运用JDBC数据库访问技术,通过Tomcat应用服务器实现电子商务网站的基本功能。该系统综合运用面向对象编程的思想,运用三大框架,...

    javaweb网上购物系统设计与实现(开题报告+任务书+外文翻译+论文+源码).rar

    5 系统功能的具体实现 18 5.1系统数据库表的基本设计 18 5.2 功能总体说明 21 5.2.1 目录结构说明 21 5.2.2 功能页面结构 22 5.2.3 主要功能流程如图5-1所示 23 5.3各功能模块的实现 23 5.3.1数据库的连接 23 5.3.2...

    基于ASP.NET的安卓论坛设计与实现

    主要分析了BBS的主要组成情况,包括BBS的设计目标,框架结构,数据流程和BBS的主要特点等,重点介绍了前台功能模块的详细思路和实现方法,以及对后台数据库关键技术和部分源代码的详细说明。 关键词:BBS ASP.NET ...

    融成Java后台网站内容管理系统 v3.2.1.rar

    9.增加网站数据分析模块,包括总体访问概览、实时访客数据、流量管理、页面分析及关键词分析等功能,实现网站访客的基本定位分析;部分功能可以根据用户需求再次定制开发; 10.总体访问概览可以查看当天、7天、30天...

    基于javascript实现的搜索时自动提示功能

    当在数据量不是很大,而且没有后端对应的功能接口的时候,一些简单的搜索功能基本上是前端去实现的,正好最近用到,写了一个,贴出来和大家分享: 效果图: 功能描述: 按下键盘后及时搜索条目中的汉字,汉字对应的...

    网上商店系统的设计与实现(论文)

    2.1.1 软件工程的基本原理 3 2.1.2 生命周期各个阶段 4 2.2 数据库系统概述 4 2.2.1 什么是数据库系统 4 2.2.2 数据库管理系统 4 2.3 Struts+Hibernate+Spring的技术原理 5 2.3.1 Struts技术原理 5 2.2.3 Hibernate...

    网上拍卖系统的设计与实现--课程设计.doc

    7 3.1.2 三层架构设计思想 7 3.1.3 系统实现的功能 8 3.2 系统层次概框图 8 3.3 系统模块详细介绍 9 3.3.1 前台模块 9 3.3.2 后台模块 10 4 数据库设计 11 4.1 数据库需求分析 11 4.2 数据库逻辑设计 11 5 详细...

    JAVA毕业设计之springboot043“衣依”服装销售平台的设计与实现(springboot+mysql)完整源码.zip

    该平台采用了前后端分离的设计思路,前端使用Vue.js进行开发,后端则使用Spring Boot进行实现。整体架构清晰,功能完善,适合作为毕业设计的参考项目。主要功能模块包括:用户模块:包括用户注册、登录、修改个人...

    基于JavaEE电子商务交易系统的设计与实现.zip

    电子商务平台是一个基于Java EE规范B/S架构下的WEB电子商务系统,采用MySQL作为后台数据库,运用JDBC数据库访问技术,通过Tomcat应用服务器实现电子商务网站的基本功能。该系统综合运用面向对象编程的思想,运用...

    毕业设计-基于ASP动态网站设计与实现.doc

    最后,按照设计思想,实现了网站服务器基本功能配置及系统各功能模块。 关键词:动态网站;ASP;数据库 The Design and Realization of Dynamic Network Station Based on ASP Technology Abstract In the knowledge...

    基于SpringBoot+vue的二手车交易系统的设计与实现(源码+部署说明+演示视频+源码介绍).zip

    源码介绍部分则详细解释了源码的结构和设计思路,包括各个模块的功能、代码的组织方式、关键技术的实现等,可以帮助你更好地理解和学习这个项目。 总的来说,这个资源包是一个非常全面的二手车交易系统的设计与实现...

    语音识别的MATLAB实现

    七、实现功能与技术指标: 1. 软件上可以识别前、后、左、右、停等语音指令,并发出相应的控制信号。 2. 硬件上可以实时的收发无限信号,并控制小 车作相应的动作。 3. 语音识别正确率大于95%,从发出语音指令 到...

    寒江独钓-Windows内核安全编程(高清完整版).part3

    6.2.2 基本思想 130 6.3 驱动分析 130 6.3.1 DriverEntry函数 130 6.3.2 AddDevice函数 132 6.3.3 PnP请求的处理 136 6.3.4 Power请求的处理 140 6.3.5 DeviceIoControl请求的处理 140 6.3.6 bitmap的作用和分析 144...

    计算机专业毕设精选-ASP上海软件贸易网站设计与实现(源代码+论文).rar

    通过该方案,用户可以全面了解网站的设计思路、技术架构、功能模块以及实现细节。同时,源代码和论文的完整提供,为用户进行二次开发或定制提供了便利。 **网站设计** 网站采用流行的B/S架构,基于ASP.NET框架构建...

    基于.net的电影院售票系统的设计与实现【附源码】

    针对电影院售票系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现电影院售票系统和部署运行使用它。

    12高德地图+58租房的程序(源码+注释+说明文档)适用于课程设计.zip

    此外,项目还提供了完整的程序说明文档,包括需求分析、系统设计、功能实现等方面的内容,有助于读者更好地理解项目的设计和实现过程。总之,这个文件包是一个非常实用的Python信息系统设计项目,适用于课程设计或...

    数据库管理与程序设计.doc

    目的: (1)基本掌握数据库分析设计的基本思路和方法; (2)达到熟练掌握SQL Server数据库的基本知识和技能; (3)能够利用所学的SQL Server基本知识和技能,解决简单的程序设计问题。 2. 要求 基本要求: 1. 画...

    1数据库管理与程序设计.doc

    目的: (1)基本掌握数据库分析设计的基本思路和方法; (2)达到熟练掌握SQL Server数据库的基本知识和技能; (3)能够利用所学的SQL Server基本知识和技能,解决简单的程序设计问题。 2. 要求 基本要求: 1. 画...

    基于springboot的厨艺交流平台的设计与实现代码.zip

    基于Spring Boot的厨艺交流平台的设计与实现代码是一个包含了前端和后端的完整项目,旨在为用户提供一个在线分享、学习和交流烹饪技巧...实际的项目代码可能会根据需求有所不同,但基本的设计思路和实现技术大致相似。

Global site tag (gtag.js) - Google Analytics