企业内搜索引擎项目(四):搜索功能的实现

1. 思路

在进行网页搜索的过程中,需要考虑索引更好的问题=》

单独使用另一条线程控制磁盘索引的更新,该线程同时更新server.conf配置文件,表明当前正在使用的是哪一个磁盘数据库;

网页搜索的时候根据server.conf中的index信息打开对应的数据库;

2. 实战

利用Xapian开源库进行网页检索操作 (Xapian搜索功能的实现);

@ 流程

重新以只读的方式打开磁盘索引文件;

将磁盘索引和内存索引都加入待搜索的索引库searchdb_中;

将客户端传输进来的待查询字符串进行分词操作,加入空格,再丢给Xapian中的解析器解析;

利用Xapian进行检索操作并得到结果;

最后将结果包装成Json字符串,等待传输给客户端;

@ UML

@ 类设计

SearchTask - 完成搜索任务;

3. 测评

参考Xapian的精确率与召回率(暂未找到资料);

时间: 2024-10-12 15:26:00

企业内搜索引擎项目(四):搜索功能的实现的相关文章

企业内搜索引擎项目(二):索引的设计和创建

1. 设计 @ 索引创建 采用[动态索引]的策略,可以实现实时搜索的功能: 动态索引的实现需要“倒排索引”,“临时索引”和“已删除文档列表”,其中“倒排索引”存储在磁盘文件中,“临时索引”存储在内存中: 思路: 当系统发现有新文档进入时,立即将其加入临时索引中:有文档被删除时,则将其加入删除文档队列:文档被更改时,则将原先文档放在删除队列,解析更新后的文档内容,并将其加入临时索引中: 用户输入查询请求时,搜索引擎同时从倒排索引和临时索引中读取结果,并将两个结果进行合并,之后用删除文档列表进行过滤

企业内搜索引擎项目(三):搜索服务器框架的搭建

1. 设计 Muduo网络库实战(二)中的"1. 方案的确定" 2. 实战 采用Muduo网络库进行服务器的搭建工作: 思路: 一旦客户端连接服务器成功,调用OnConnection()函数: 当客户端发送数据给服务器,调用OnMessage()函数,处理数据并利用线程池进行搜索返回结果: 其中服务器与客户端的连接采用TCP长连接形式(TCP长连接与短连接的区别),分包方法为在每条消息的头部加一个长度字段: 解析数据的方案:(Muduo中利用Buffer缓存来发送和接收数据库) 当客户

企业内搜索引擎项目(一):架构

一 整体架构 整个搜索引擎网站为一个Web应用平台,采用LAMP架构(Linux + Apache + MySQL + PHP): (链接:LAMP架构的搭建) 其中PHP负责网站的前端,后端使用C++编写: 服务器后台包括倒排索引模块和搜索模块: 类似于: 二 开源工具的确定 1. Muduo网络库 专注于Linux下的高性能网络库,同时代码量只有5000行,便于学习: (链接:Muduo的安装和使用) 2. 搜索引擎 xapian -(链接:xapian的使用) 3. 日志系统 log4cp

分布式网上商城项目-solr搜索功能错误

1.RuntimeException错误 1 java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.thyonline.taotao.search.mapper.SearchItemMapper.SearchItemList 2 3 org.apache.ibatis.binding.BindingException: Inva

第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)

https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第五天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结[第六天] 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)[第七天](redis缓存) 第04

第四章:IOS Table表视图搜索功能UISearchBar

UISearchBar经常会跟UITable一齐使用,所以在此就介绍一下UISearchBar 先来看看结构 下面再看看它有哪些样式 基本搜索栏.里面????的Search文字用于提示用户??入查询关??字,搜索栏的Placeholder属性可以设置这个提示信息 带有??除按钮的搜索栏.在??入框中??入文字时,会在后面出现??????除按钮,点????除按钮可以??除??入框中的文字 带有查询结果按钮的搜索栏.显示最??搜索结果,显示设定如图4-31所示,选中 Options下的Shows S

织梦的站内搜索功能实现

1.首先找到default里的: 这是原始的搜索功能,将他改成你所需要的样式: 上面的是修改后的样子,修改完后,放到你需要的位置. 然后在创建一个search.htm(样式可跟列表页差不多),搜索页调用显示使用 以上就是织梦的搜索功能. 原文地址:https://www.cnblogs.com/mo3408/p/10155574.html

云展网教程 | 搜索功能:搜索杂志内文字可高亮

云展网对于需要搜索功能的文件有一定要求:1. 如果导入的源文件是图片jpg或者png等格式,不支持搜索功能. 2. 用CDR转曲输出的PDF也不支持搜索功能. 3. 只有用word/ppt/Adobe Indesign/方正飞腾排版设计的PDF格式文件,并且PDF里边的文字右键可以复制的PDF文件,才支持搜索功能. 如何设置搜索功能? 搜索按钮:选择"是"允许用户搜索文字内容 高亮颜色:标出搜索结果的字体颜色 字体限制:设置最小数量的搜索字数 限制搜索结果:一旦允许,搜索结果只会显示与

借助 Lucene.Net 构建站内搜索引擎(上)

前言:最近翻开了之前老杨(杨中科)的Lucene.Net站内搜索项目的教学视频,于是作为老杨脑残粉的我又跟着复习了一遍,学习途中做了一些笔记也就成了接下来您看到的这篇博文,仅仅是我的个人笔记,大神请呵呵一笑而过.相信做过站内搜索的.Net程序员应该对Lucene.Net不陌生,没做过的也许会问:就不是个查询嘛!为什么不能使用Like模糊查找呢?原因很简单:模糊查询的契合度太低,匹配关键字之间不能含有其他内容.最重要的是它会造成数据库全表扫描,效率低下,即使使用视图,也会造成数据库服务器"亚历山大