首页 > 其他分享 >搜索在计算机中的地位十分重要

搜索在计算机中的地位十分重要

时间:2023-10-18 09:33:44浏览次数:21  
标签:计算机 全文检索 索引 文档 分词器 搜索 数据 地位

 

无论是在内部系统还是在外部的互联网站上,都少不了检索系统。数据是为了用户而服务。计算机在采集数据,处理数据,存储数据之后,各种客户端的操作pc机或者是移动嵌入式设备都可以很好的获取数据,得到 想要的数据服务。

 

检索分为SQL过滤查询和全文检索。数据都是放在数据库里,数据库里的数据量太大,要检索到精准的数据是需要很好的用户体验。用户对响应时长要求特别严格,最好控制在一定的响应时间内。SQL查询是普通的字段过滤,一般在没有走全表扫描的情况下都是性能较好的数据查询方式。全文检索的实现方式是在数据库设计的时候就有这些模块,比如MySQL的全文检索。之后在市面上有公司开发了成型的开源产品,比如Lucene等。    学过luncene框架,  能就是论事。在银行工作的时候有接触过es框架,到现在也没仔细去弄懂。每个人的学习能力不一样,有的工程师削尖了脑袋要去专研每个技术。    是在学习Java开发框架的时候接触过Lucene框架, 跟着源码敲了一遍那个搜索引擎。对于那种根据分词查询数据的方式有深刻的映像,但是并不是每个系统都是要使用全文检索分词搜索。

 

按需开发,意思就是根据需求进行商业开发。以用户体验为中心,金钱盈利为目的。没有谁在为 做无用功,得到与失去,不要去说,也说不准。像普通的字段搜索看起来十分简单,其实就是很简单。但是如果遇到数据量大的情况,或者是用户不会使用系统的情况下,都是有问题的。像百度,Google,搜什么就有什么,这就是全文检索。

 

搜索,依赖于搜索引擎。搜索引擎的建立是十分困难的事情。以  现在的水平理解的搜索,  能说个大概。  做Java 6年时间,虽然没有写过搜索引擎,但是没有经验的同学可以去尝试着实践下。做任何系统都是需要构建bs架构或者是cs架构,cs架构是client-server架构。

 

在操作系统中有客户端软件开发包,bs架构是broswer-server架构,在所有的数据操作都是在浏览器中实现,把浏览器当做一个子系统,子系统上面又有很多应用程序... bs架构是特殊的cs架构。

 

在大学学习计算机编程开发,首选的语言是C++。那种语言是写客户端软件, 也是学的很纠结,以为没有很好的效果。大三休学的时候学习了Java,接触全文检索,学习了前端页面的设计开发,后台数据库的建立。到现在有更多的想法和思考。爬虫的建立,爬虫是怎么从网站上爬数据,用户是怎么在网站上面搜索数据。

 

大学毕业之后对于搜索引擎的理解画了个草图

 

 

 

 

像  爬虫

 

 

 

 

一般的java IDE的debug是这样设计

 

 

 

 

 

爬虫是怎么在网站上爬数据,为什么  能爬网站的数据。现在的web浏览器都支持HTML标签编辑的网页,HTML标签页是dom元素。每个DOM元素都是一个实体对象,在数据库中体现的就是dom元素实体对象表。Dom元素表里存放的就是网页标签所承载的基础数据和一些基本属性。每当一个网站上面的标签包裹的数据发生变化,就要触发数据写write事件,即 WriteEventListener,更新索引库里的索引数据,和文档库里的文档数据。这种数据更新同步方式叫做即时同步方式,是的数据库里的数据和索引库里的数据保持一致性。用户查询数据的时候总能查到最新的数据,用户查数据都是走索引库再走文档库,这样性能更好。

 

至于怎么构建dom元素数据库,怎么构建dom元素索引库。那些都是商业库,需要开发注册维护,就像   在某个地方开商店一样,需要办理很多手续。

 

当时学习操作lucene 框架架构方式是通过AOP的方式实现数据同步。数据同步是文档库和索引库的同步操作方式。文档库存放的是Document 文档对象,索引库存放的是字段对象 Field 。字段对象 分为索引文档号和经历过分词器分词之后的关键字集合。中文分词器是Analyzer 堆中文的语句进行分词。

 

中文的分词器对中文语句的此法进行分析。中文的语句分为 主+谓+宾+定+状+补 . 分词器分为标准的国际分词器和中国大陆简体的中文分词器。原理十分相似,实词和虚词需要区分。实词是名词,虚词是冠词,语气词,称谓词,形容词,状态词,补语词,谓语词 。分词器分析网站上面的文章关键字,中文摘要,具体的文章正文内容。分词器的分词结果生成关键字和文档索引组装成的字段 Field 对象。字段对象集合 fieldList 放在lucene 索引库中。文档库中存放大量的文档对象,文档Document 与 字段 Field 对象的索引表中的文档索引关联。

 

用户在前端使用日用语句在lucene搜索引擎中搜索数据集合的过程十分复杂。简单的过程可以分为

  1. 查询语句词的录入接收。
  2. 后台对中文查询语句分词,抽取关键字形成关键字集合。
  3. 使用关键字集合在lucene索引库 中的关键字进行匹配,匹配成功会有文档集合 documentList 。
  4. 文档集合返回给业务逻辑层 service . 使用高亮器hlighter 对文档中的存在的关键词高亮。
  5. 文档集合的返回通过评分对象 score 综合得分排序。

a)       命中文档的得分 score 有默认的得分规则和自定义得分规则。

 

数据同步在企业项目中使用很多。平安集团的hrx人力资源管理系统使用Elasticsearch 搜索引擎搜索数据。Lucene 和 Elasticsearch 两种引擎搜索数据的方式都是全文检索。全文检索在数据库软件中普遍存在。企业的IDE 开发环境有搜索框的地方或许会有全文检索的影子。软件和应用程序系统都有数据。检索方式分为通过表单的方式和一个表单输入框的方式。一个表单输入框的输入方式面向的用户是大众化的互联网网名。Java 的web信息系统安全新能和开发维护团队有保障,使用sql 查询语句查找数据的方式限制用户量。内部系统的用户量分为内部用户和外围用户。使用sql查询语句查询数据使用全文检索索引库和文档库。数据查询是否全表还是走索引表有用户自定义,系统默认,AI 算法相应的操作模式。

 

数据同步索引库和文档库中的数据。同步平安银行ES库和PJ 库中的数据。开发任务涉及到项目不同版本发布的同步数据代码。数据量大小和性能问题对于开发工程师是更高级别的操作。保证数据的正确性,代码的质量高低。项目组之间的工程师都会相互借阅不同开发分支的代码。每个开发都会有不同的编写代码的方式。

 

Elasticsearch 搜索原理和Lucene 类似。每个企业采用的技术架构选型不尽相同。

标签:计算机,全文检索,索引,文档,分词器,搜索,数据,地位
From: https://www.cnblogs.com/liaowanzhong/p/17771298.html

相关文章

  • VSCode 设置文件显示和搜索过滤
    打开setting.json {"search.exclude":{"**/node_modules":true,"**/bower_components":true,"dist/":true,"build/":true,"temp/":true,......
  • 搜索引擎与程序化广告:原理、设计与实战pdf电子版2023 杨敏
    搜索引擎与程序化广告:原理、设计与实战pdf电子版2023杨敏出版年: 2023-9ISBN: 9787115617002下栽连接通读全书,可以感受到的是作者多年的工作经验的汇集和多方面的技术积累,不仅让我了解了当前多种流行的数据结构的实现原理和一些技术的底层实现,更让我感受到这些我们耳熟能......
  • 电影台词搜索下载
    找台词(通过台词找电影):https://zhaotaici.cn/index.html##字幕库(下载SRT): https://zimuku.org/detail/29849.html......
  • 计算机出现鼠标出现乱跳问题(USB485模块识别为鼠标设备)
    原因:计算机把USB485模块识别成“串口鼠标设备”,先给485上电。由于串口上一直有485数据,系统启动时候,误认为串口发送的数据是鼠标数据,从而把串口设备识别成了鼠标设备。解决方法:禁用注册表中sermouse的启动项。具体步骤:1、键盘(win+R),出现运行窗口,输入regedit,回车进入注册表编辑器......
  • 01背包问题的子集树搜索
    如题: 经典01背包问题,直接代码反映心路历程。////Createdby_thinkPadon2023/10/16.//#include<iostream>#include<vector>#include<stack>#include<queue>#include<algorithm>usingnamespacestd;/**第一行两个整数,N,V,用空格隔开,分别表示物品数量和......
  • [python] 使用nmap搜索主机及端口号:寻找宿舍路由
    prologue明明设置好了端口映射,但出来却发现无法远程连接宿舍的电脑,怀疑是路由器WAN网口地址变动idea很神奇的是原ip能ping通,不过也可能是被分配给其他宿舍,尝试了telnet,无果。上网搜索发现了netcat,又看到了nmap,似乎更合适solution安装好nmap,计划是先扫描主机,再扫描在线主机的2......
  • 标题:计算机音视频技术的现状与未来发展
    摘要:随着计算机技术的不断进步,音视频技术也取得了巨大的发展。本文将探讨计算机音视频技术的现状以及未来的发展方向,包括音频编解码、视频压缩和流媒体传输等方面。引言:计算机音视频技术的快速发展使得我们能在网络上观看高清视频、进行远程聊天和视频会议,享受丰富多样的音频娱乐体......
  • 计算机组成原理7
    十二、加密算法十三、可靠性 ......
  • 计算机组成原理8
    十四、原码反码补码移码原码:最高位是符号位,其余低位表示数值的绝对值(0表示正数,1表示负数)反码:正数的反码与原码相同,负数的反码是其绝对值按位取反(符号位不变)补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)移码:符号位按位取反补码求原码:将补码求补码得到原码=补码......
  • 最优性剪枝,可行性剪枝,优化搜索顺序,排除等效冗余
    杨辉三角:  //https://www.luogu.com.cn/problem/P1118//最优性剪枝://由高中知识可得,abcd四个数符合杨辉三角的数相乘,即//res=a+3*b+3*c+d,前面的常数项也就是杨辉三角的数字//根据此结论,进行剪枝//由于暴力枚举全排列+部分剪枝不可过,所以要考虑方法性剪枝......