佛山三水网站建设免费wordpress博客

pingmian/2025/10/8 18:27:22/文章来源:
佛山三水网站建设,免费wordpress博客,太原招聘网站开发,怎么做外链究竟什么是搜索引擎#xff1f;正式介绍XunSearch 啥#xff1f;还要单独讲一下啥是搜索引擎#xff1f;不就是百度、Google嘛#xff0c;这玩意天天用#xff0c;还轮的到你来说#xff1f; 额#xff0c;好吧#xff0c;虽然大家天天都在用#xff0c;但是我发现正式介绍XunSearch 啥还要单独讲一下啥是搜索引擎不就是百度、Google嘛这玩意天天用还轮的到你来说 额好吧虽然大家天天都在用但是我发现其实很多人对搜索引擎并不是特别了解更别提搜索引擎开发了。不信那么咱们就一步一步来看。 搜索引擎 上来先官方看看百科中对搜索引擎的定义。 搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息在对信息进行组织和处理后为用户提供检索服务将检索的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术它指在提高人们获取搜集信息的速度为人们提供更好的网络使用环境。从功能和原理上搜索引擎大致被分为全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎等四大类。 嗯一堆没啥用的概念。但我们能从中看到搜索引擎是根据策略也就是根据我们的搜索关键词以最快的速度返回匹配度最高的信息。然后包括全文检索、垂直搜索这两个重要的类型我们日常开发中需要开发的也正是这类搜索引擎。 通常来说在数据库中如果数据量不大其实通过 like 就可以实现模糊匹配。这就是一种搜索实现只不过like 如果是前后都有 % 的就走不了索引数据库引擎需要对每一条数据的每一个字段里面的内容进行全部的单词匹配。如果数据量大了那么效果可想而知。特别是如果是针对大型的文章、文献本身字段的内容也非常长这样匹配就更费劲了。 而搜索引擎一般会采用倒排索引能够大大提升词组的匹配效率进而提升查询速度。关于倒排索引的概念我们会在后面再说。 既然提到了倒排索引那么就要牵涉出另一个词汇那就是分词。很多人会把搜索引擎的搜索功能和 like 混淆这一点一定要搞清楚如果不搞清楚就会出现一个很大的误区。划重点了分词倒排索引和 like 匹配完全不是一个东西。 搜索引擎概念 在学习搜索引擎开发前我们需要了解一些概念性的内容。 索引搜索引擎中的索引只有一个那就是倒排索引。后面的文章我们会详细的说明。搜索引擎在开始使用的时候一定都有一个建立索引的过程。分词针对文档内容以及查询语句我们要将它们进行分词如果不分词就无法快速建立倒排索引。同时中文分词又是非常重要的内容。引擎百度、Google的强大引擎不提我们日常开发中用到的主要就是 Lucene 系列的如 ElasticSearch、Solr 等另外还有 Sphinx 使用的基于 SQL 的搜索引擎以及我们的主角 XunSearch 所使用的 Xapian 引擎。排序/评分我们查询了数据之后数据是按什么顺序返回的呢如果是数据库可能会指定一个排序字段但搜索引擎一般会根据相关性评分进行排序也就是说我们应该搜索到的是最贴近搜索词的内容一般也是用户最想看到的内容。标点符号基本上所有的搜索引擎都会过滤掉标点符号最开始我还在纠结为什么我单独来个问号搜索不到内容其实呀搜索引擎就是为了做语义词组搜索的标点符号在大部分情况下是没有太多意义的呀。当然百度上面是有意义的但咱们不能跟他比。 虽说不全面但上面几点内容应该是比较重要的方面。其中索引、分词、排序、评分等内容我们后面还会有更详细的学习。今天我们先来了解一下引擎和框架。 XunSearch 和 Xapian XunSearch 中文名是 迅搜 国人大佬开发提供完整的 PHP SDK 组件。 不是说好了是学习 XunSearch 嘛Xapian 是什么鬼这个呀其实用 ElasticSearch 和 Lucene 来解释就很清楚了。要说搜索引擎组件中的老大ElasticSearch 可谓是一骑绝尘。如果你之前学习过 ES 相关的内容那么 XS 后面我们就都用 XS 来指代 XunSearch 啦就和 ES 一样的内容学习就非常轻松了。如果你没有学习过 ES 那也没关系但希望你学习完我的 XS 系列之后再去好好学习一下 ES 因为有些东西 XS 真的是没有的而且有些有的东西和 ES 也是没法比的。但搜索引擎的基本概念都是相通的而且 XS 也有自身的优势。我们下一节也会说这些搜索引擎的选型以及优劣。 好了话说回来。Lucene 是 Java 实现的一个搜索引擎非常强大也非常出名但是呢不好用。就是比较偏底层就像是一个 JDK 或者说是原生写法去开发 PHP 应用。而 ES 则是构建在 Lucene 之上的提供了各种方便使用的功能以及强大的 RESTFul 接口能够方便地使用就像是 Java 语言或者说是使用框架来开发 PHP 应用。Lucene 和 ES 的作者是同一个人。 同理Xapian 正是我们 XS 的底层框架XS 是建立在其之上的通过封装提供了现成的 PHP SDK 能够让我们非常方便地使用。除了 Xapian 之外XS 还一道封装好了 hightman 大佬开发的中文 SCWS 分词器。相当于一个 XS 就是 XapinaSCWSPHP SDK 的组合。是的你没猜错XS 也是 hightman 大佬开发的而且到现在也一直在更新最重要的是这是咱们国人的面向中文的优秀搜索引擎解决方案哦感谢大神前辈的努力和奉献。 那么 ES 上有分词器嘛老外开发的肯定是英文分词没问题啦。如果要使用中文的话需要自己安装 IK 分词器或者其它分词器插件不过 ES 的插件安装非常简单其实也没啥难度。这里还需要注意的是一点是即使是英文所有的搜索引擎也会统一以小写建立索引也就是说搜索引擎是不区分大小写的统一都是小写。 好了这下应该清楚了吧我们要学习的核心内容都有哪些。 倒排索引、分词的概念与原理排序、相关度评分的算法概念XS 的使用PHP SDK工具、PHP SDK全部功能使用等SCWS、Xapian 的学习 现在知道为什么上篇文章中我会说咱们这一套文章和视频可能会是全网唯一了因为咱们不只讲 XS 的使用还要简单地学习一下 SCWS 和 Xapian 并且通过这些再顺道一起学习搜索引擎相关的一些基础知识。当然重点的核心内容肯定还是 XS 的使用咯也就是我最擅长的带着大家一起刷文档啦 搜索引擎选型 搜索引擎工具非常多比如在 DBEngines 上就能看到很多很多种。 ES 一骑绝尘这说法没毛病吧所以我说如果你之前学习过一点 ES 那么看这个系列没啥压力如果你没有学习过那么学完 XS 后也最好再去看看。ES 最强大的部分在于天然分布式、性能强悍现在也是大数据的标配了上亿数据量轻松拿捏更重要的是它的生态好社区活跃这一点很重要。 除了 ES 之外我略微了解过的还有 Solr 和 Sphinx 其它的就不太清楚了。因此我就主要对比这四个大部分资料也是网上找到的。 XunSearchElasticSearchSolrSphinx引擎XapianLuceneLucene不知道引擎开发语言C/CJavaJavaC/C应用语言PHPXapian支持各种语言SDK因此其实 XS 也支持各种语言各种语言各种语言各种语言搜索功能支持1.全文 2.搜索建议 3.分面 4.拼音搜索 5.突出显示 6.权重微调 7.拼写检查/纠错 8.突出显示1.全文 2.自动完成建议 3.分面 4.多场 5.同义词 6.模糊 7.地理空间1.全文 2.自动完成建议 3.分面 4.多字段 5.同义词 6.模糊 7.突出显示 8.地理空间 9.拼写检查1. 全文 2. 自动完成建议 3. 分面 4. 多字段 5. 同义词称为字形 6. 地理空间 7. 突出显示称为片段 8. 拼写检查称为qsuggest扩展与分布式支持主从复制天然分布式支持分布式支持主从复制查询效率中等高数据量越大分布分片节点越多与其它相比性能就越好高非常高单索引亿级也能快速搜索增量索引支持支持支持增量支持度一般但全量MySQL生成索引非常快与MySQL等配合紧密中文支持自带SCWSIK、Jieba等安装第三方分词器安装第三方分词器资源占用低高高中数据量级单索引百万单索引单节点千万分布式多节点多分片没上限单索引单节点千万分布式多节点没上限单索引亿级开发友好极高对我们 PHPer 来说当然是极高了而且确实简单高高高 好了这些对比是不是客观全面我也不知道反正也是网络上收集来的不过大部分的对比文章都会提到这些。我们再拿 XS 和 ES 来总结一下因为我更推荐的就是只学这两个就可以了。 XS简单好上手中文分词友好国人开发文档齐备部署方便快速上线。唯一缺憾没有地理空间索引O2O相关的项目就不要考虑了。 ES强大排名无人可匹敌天然分布式支持能玩大数据的知识体系更为庞大除了搜索之外还有聚合计算以及分析能力生态健全也更活跃。 为什么只推荐学习这两个呢 第一PHPer 们大部分接触到的项目说实话XS 完全足够。第二如果确实有很大的数据量直接用最热门的准没错。第三XS 上手简单学习应用速度快和 PHP 无缝对接分分钟上线功能。第四ES 代表着最先进所有的知识、插件、概念都比较新功能齐全。第五搜索引擎的基础知识和原理是相通的就像数据库的原理一样需要使用其它的学习也很快。 怎么感觉说完这一节更想去学 ES 了哈哈哈哈 好吧咱们还是要以 XS 为主哦不过在学习过程中我们在需要做对比的时候也会直接使用 ES 来进行对比。比如马上我们就会说一下问题。 搜索引擎真的不是 like 上一篇文章中我们搭起了应用环境也插入了一些测试数据不知道大家有没有测试给出的那些查询语句的结果。其中有一条是这样的。  php vendor/hightman/xunsearch/util/Quest.php demo 项 小伙伴们测了没是不是查不出东西呀 跟你说查不出来就对了用 ES 也查不出来。如果你学过 ES 那么在 Kibana 中使用下面的 ES 命令建立索引并插入数据来进行测试。如果没学过的话就等视频哈在视频里我也会演示 PUT demo {mappings: {properties: {pid:{type:integer},subject:{type:text,analyzer: ik_max_word},message:{type:text,analyzer: ik_max_word},chrono:{type:integer}}} }POST demo/_doc {pid:1,subject:关于 xunsearch 的 DEMO 项目测试,message:项目测试是一个很有意思的行为,chrono:1314336158 }POST demo/_doc {pid:2,subject:测试第二篇,message:这里是第二篇文章的内容,chrono:1314336160 }POST demo/_doc {pid:3,subject:项目测试第三篇,message:俗话说无三不成礼所以就有了第三篇,chrono:1314336168 } 第一个 mappings 就是 ES 中的索引映射就相当于表结构。我们针对  subject 和 message 使用了 IK 分词器来作为分词器。在 XS 中我们没有这个呀不不不有的我们后面会看到XS 自带的测试 demo 的结构就是和这个一样的。然后插入同样的三条数据。接下来进行查询测试。 GET demo/_search {query:{query_string : {query :项目}} }GET demo/_search {query:{query_string : {query :项}} } 不出意外的话第一个查询和我们在 XS 中的查询结果是一样的第二条则也同样查不到任何数据。 为什么呢因为分词重点说三遍分词分词分词索引索引索引。“项”按正常的分词器不管是 IK 还是 SCWS 都不会当成一个单词也就不会为它建立倒排索引这样就无法查询到。 而 like 语句的原理是针对字段里的值逐一匹配ES 中有类似的 wildcard 功能但如果数据量非常大的情况下使用 非前缀匹配的 wildcard 也会同样带来性能问题因为它就和 MySQL 中使用 like 一样了没法用到索引。XS 中没有类似的功能XS 是完全的全文分词检索。 为啥要单独说这个因为很多人在迅搜的官网以及 Github 的 issue 中都会不分青红皂白的上来就是说搜得不准啥都搜不出来什么的。说实话没有系统学习搜索引擎相关的知识前我也不知道我也以为它就是和 like 一样。为啥一个“项”字就搜不出来东西了真是垃圾。 照这么说的话ES 可能也得划到垃圾的范围中了。那么可以像类似于 like 一样去搜索吗可以但是不推荐等到后面学习分词相关的知识时我们会回来解决这个问题。 今天我们先抛出问题接下来的文章中咱们就一一学习全文检索、倒排索引、分词、文档、词频排序等等这一大堆的概念。 总结 今天的内容还好吧比较概念后面也还有一篇概念性的内容主要就是倒排索引和分词的概念。完了之后才会开始正式的 XS 的应用学习并在其中再穿插其它概念性的内容。没办法我也想直接全部都在 XS 的学习过程中穿插概念性的内容但是在搜索引擎中索引和分词的概念确实是要提前说明的就像上面的例子一样否则大家就会一直在疑惑为啥总是搜索不到想要的东西。 不过反过来说概念掌握了之后其实不管是 XS 还是 ES 或者其它任何搜索引擎工具那都只是形式上的不同而已了。学习在道、法、术三个层次中最终要掌握的还是道法是经验的积累而术真的只是照着文档敲的事了。 另外做个小约定从今天开始全部使用 XunSearch 的简称 XS 了哦有的地方可能我也会用中文名称 迅搜 但不再打完整的 XunSearch 这个词了哦。同样的在需要对比的地方我也会用 ES 来表示 ElasticSearch 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站需要的课程做一个企业网站多少钱

好久木有在知乎冒泡了,不知道还能不能出现在大家的timeline上哇QAQ正文开始之前还是先习惯性的碎碎念一下。前段时间换了研究方向,重新pick了问答和检索,为了追上相关问题的最新进展,就顾不上写文的刷了一堆paper,加上…

家乡网站设计目的互联网公司排名名单

点击上方蓝字关注我们0. 简介在某些时候我们可能会需要执行后台任务,或者是执行一些周期性的任务。比如说可能每隔 1 个小时要清除某个临时文件夹内的数据,可能用户会要针对某一个用户群来群发一组短信。前面这些就是典型的应用场景,在 Abp 框…

石岩医院网站建设网络建设标准

原题链接:https://leetcode.cn/problems/reverse-linked-list/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 方法一:三指针翻转法 使用三个结构体指针n1,n2,n3,原地修改结点…

企业在网站推广汕尾网站seo

文章目录 工厂模式1、简单工厂模式2、工厂模式3、抽象工厂4、总结 工厂模式 工厂模式是 Java 中最常用的设计模式之一,工厂模式模式的写法有好几种,这里主要介绍三种:简单工厂模式、工厂模式、抽象工厂模式 1、简单工厂模式 这里以制造cof…

做棋牌网站违法吗做暧昧免费视频大全网站

[NOIP2008 普及组] 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的: n n n 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老…

网站建设常用的编程语言网站接口怎么做

UTC时间格式是什么 首先我们先简单的了解一下:UTC时间(协调世界时,Coordinated Universal Time)使用24小时制,以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时,取值范围为00到23。mm 表示分钟…

做设计找素材的+网站有哪些使用wordpress版权

在博客上看到一篇关于给二十几岁人的人生建议,觉得颇有道理,写一下关于这个感想,提醒现在和以后的你和自己。 人生路上,确实是一切都是未知的,你不知道你下一刻,面临的会是什么,我们无法预知未…

网站不公开简历做家教wordpress自动评论工具

在当今数字化时代,网络安全和隐私保护日益受到重视。作为网络工程师和网络文章主编,我将为您介绍一种强大而高级的代理技术——SK5代理,并探讨其在网络安全、爬虫以及HTTP通信中的重要应用。 1. SK5代理简介 SK5代理是一种基于SOCKS5协议的…

seo 专业为网站建设专业网站开发方案

目录 一、修改PPT中每一页的字体二、将文本框中的字都放到word里 将一份PPT的每一页字体、大小、是否加粗都统一,是一个常见需求。特别是字体统一是高频、热点需求。在python操控PPT常用库python-pptx中有一个bug,对字体的修改只能修改数字和英文字母&am…

教学网站建设计划怎么免费创建网页

1.Android.mk导包 1).jar包位置 与res和src同一级的libs中(没有就新建) 2).Android.mk文件 LOCAL_STATIC_ANDROID_LIBRARIES:android静态库,经常用于一些support的导包 LOCAL_JAVA_LIBRARIES:依赖的java库,一般为系统的jar…

网站管理员怎么做软件开发包括什么内容

1、环境搭建 https://github.com/ultralytics/yolov5 2、安装需要的软件 pip install -U -r requirements.txt 3、准备数据 在data文件下建立上面三个文件(Annotations、images与ImageSets,labels后续我们脚本生成)其中Annotations存放xml…

深做网站公司Wordpress数据怎么导出

搜索热词ThinkPHP的数据库条件查询语句有字符串式,数组式书写方法字符串式即是原生式,数组式查询语句因书写方式与特定字符的原因比较复杂,下面为大家例出了常用的ThinkPHP数组式查询语句的使用方法ThinkPHP一般查询$data_gt[id]array(gt,8);…

旅游网站策划书范文旺道seo优化软件怎么用

九江学院来了多位“机器厨神”●炒菜机一次能炒近10公斤菜,三四分钟就能出锅,味道也不错●煮饭机从淘米到煮熟全部自动机械化操作,效率提高了不少电脑开启,设定好程序,机器就可以自动运转,快速炒出美味可口…

哪个网站做自媒体比较好前端网页设计样例

$merge的用途是把聚合管道产生的结果写入指定的集合,有时候可以用$merge来做物化视图。需要注意,$meger操作必须是聚合管道的最后一个阶段。具体功能有: 能够输出到当前或不同的数据库能够输出到正在聚合的集合(慎重:…

做网站界面需要注意什么北京住房建设网官网

前言 本章介绍python自带模块os,os为操作系统 operating system 的简写,意为python与电脑的交互。os 模块提供了非常丰富的方法用来处理文件和目录。通过使用 os 模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强…

网站的好坏电商运营为啥不找25岁以上的

WeihanLi.Npoi 近期更新Intro最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一下最近的更新默认导入/导出格式变更在 1.5.0 版本…

江苏省建设厅网站首页水资源监控能力建设 网站

很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式。 一、提供一个word模板 该方法提供一个word模板文件,数据通过参数替换的方式传入word文件中,灵活性较差,适用于简单的文件导出。需要…

php购物网站开发开发多久国内做的比较好的数据网站

简介: 为了解决大数据、AI 等数据密集型应用在云原生计算存储分离场景下,存在的数据访问延时高、联合分析难、多维管理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年 9 月份联合发起了开源项目 Fluid。Fluid 本质上是一个云原…

网站建设理论网站开发 思维导图

Modbus RTU 与 Modbus TCP 的区别 一般在工业场景中,使用 Modbus RTU 的场景更多一些,Modbus RTU 基于串行协议进行收发数据,包括 RS232/485 等工业总线协议。采用主从问答式(master / slave)通信。 与 Modbus TCP 不…

深圳做营销网站制作湖北移动官网网站建设

目录 1、call 2、apply 3、bind 4、三者异同 1、call call 函数调用 :1、让函数执行 2、改变函数this指向 参数: 第一个参数是this指 向,第二个参数开始传递给函数的实参 函数名.call(this指…