搜索引擎原理之sphinx技术分享-@赵建亭
new bing 原理讲解

new bing 原理讲解引言搜索引擎在现代社会起到了举足轻重的作用,为人们提供了获取信息和解决问题的重要工具。
Bing作为谷歌之外最为知名的搜索引擎之一,其背后的原理是如何实现的呢?本文将对Bing的原理进行全面、详细、完整且深入的探讨。
搜索引擎的基本原理搜索引擎的基本原理是根据用户输入的关键词,在搜索引擎的数据库中查找相关的网页,并按照一定的规则进行排序和展示。
搜索引擎的原理可以分为三个主要步骤:爬取、索引和检索。
1. 爬取爬取是指搜索引擎通过自动化程序(蜘蛛或爬虫)在互联网上抓取网页的过程。
爬虫会从一个起始页面开始,通过页面上的链接逐步遍历整个互联网。
爬取过程中,爬虫会收集网页的URL、标题、内容和其他重要信息。
2. 索引索引是将爬取到的网页进行处理和组织,以便后续的检索。
在索引过程中,搜索引擎会对网页进行去重、分词和建立倒排索引等操作。
倒排索引是搜索引擎中非常重要的组成部分,通过该索引可以快速定位包含关键词的网页。
3. 检索当用户输入关键词进行搜索时,搜索引擎会根据索引中的信息找到相关的网页,并按照一定的算法对网页进行排序。
在排序过程中,搜索引擎会考虑网页的相关性、权威性和用户体验等因素。
最终,搜索引擎会将排序好的网页结果展示给用户。
Bing的原理Bing作为微软旗下的搜索引擎,其原理与其他搜索引擎基本类似,但也有自己的特点。
1. 爬取Bing的爬取过程主要分为四个步骤:种子URL生成、URL抓取、页面下载和页面解析。
•种子URL生成:Bing会从一些预定义的种子URL开始爬取网页,种子URL 通常是一些知名的网站或已知的高质量网页。
•URL抓取:Bing的爬虫会通过正则表达式或其他方法提取页面中的URL,并加入待爬取队列中。
•页面下载:爬虫会下载待爬取队列中的网页,并保存到Bing的服务器上。
•页面解析:Bing会对下载下来的网页进行解析,提取出其中的内容和其他重要信息。
2. 索引Bing的索引过程包括去重、分词和建立倒排索引三个主要步骤。
搜索引擎原理汇总

齐家 2013-7-18
课程提纲
• • • • 一、抓取 二、过滤 三之快的速度将您的网站内容展现给用户?这背后 蕴样简单。 • 搜索引擎为用户展现的每一条搜索结果,都对应着互联 网上的一个页面。每一条搜索结果从产生到被搜索引擎展 现给用户,都需要经过四个过程:抓取、过滤、建立索引 擎系统的计算 ,来决定对哪些网站施行抓取,以及抓取的内容和频率值。搜 索引擎的计算过程会参考您的网站在历史中的表现,比如内容 是否足够优质,是否存在对用户不友好的设置,是否存在过度 的搜索引擎优化面的链接进行访问和抓取,如果您没有设已被抓取过的内容,搜索引擎会对抓取的页面 进行记录,并依据这些页面对用户的重要程度安排不同频次的 抓取更新工作。 • 需您要注意的是,不受控制的抓 取行为,的结论在索引库中寻找与之最为匹配的一 系列网页,按照用户输入的关键词所体现的需求强弱和网 页的优劣进行打分,并按照最终的分数进行排列,展现给 用户。 • 综上,您若希望通过搜索引擎为用户带来更好的体验 ,需要对进行您的网站严格的内容建设,使之更符合用户 的浏览需求。需要您注意的是,网站的内容建设始终需要 考虑的一个问题是,这对用户是否有价值。 •
谢谢! Thank you!
2013-7-18
二、过滤
• 互联网中并非所有的网页都对用户有 意义,比如一些明显的欺骗用户的网页, 死链接,对这些内容进行过滤, 以避免为用户和您的网站带来不必要的并将这些标记进行储存为结构化 的数据,比如网页的tagtitle、meta 、 descripiton、网页外链及描述、抓取记录 。同时,也会将网页中的关键词信息进行 识别和储存,以便与用户搜索的内容进行 匹配。
Sphinx全文检索引

Apache是什么?Apache是一个开源的Web服务器
2页
MySQL是什么?MySQL是一个开源的数据库
3页
PHP是什么?PHP是一个开源的脚本语言
4页
全文检索大体分两个过程:
索引创建(Indexer)和 搜索索引(Search)。 索引创建:将现实世界中所有的结构化和非结构化 数据提取信息,创建索引的过程。 搜索索引:就是得到用户的查询请求,搜索创建的 索引,然后返回结果的过程。
中文分词系统:
中文分词与英文分词有很大的不同, 英文一个单词就是一个词,而汉语是以字为基本的 书写单位,词语之间没有明显的区分标记,需要人 为切分。
中文分词系统,是利用计算机对中文文本进行词语 自动识别的系统,词语自动识别的方法我们通常称 为分词算法。
分词算法的分类:
主要有3大类: 1、 基于字符串匹配的分词方法。 2、 基于理解的分词方法。 3、 基于统计的分词方法
students but found them drunk (Tokenizer)。
分词组件(Tokenizer)会做以下几件事情(此过程称为Tokenize):
1. 将文档分成一个一个单独的单词。 2. 去除标点符号。 3. 去除停词(Stop word)。 所谓停词(Stop word)就是一种语言中最普通的一些单词: 英语中的停词(Stop word)如:“the”,“a”,“this”等。 中文中的停词 如:‘是’‘的’‘这个’等。 对于每一种语言的分词组件(Tokenizer),都有一个停词(stop word)集合。 经过分词(Tokenizer)后得到的结果称为词元(Token)。 在我们的例子中,便得到以下词元(Token): Students、allowed、go、their、friends、allowed、drink、beer、My、friend、Jerry、 went、school、see、his、students、found、them、drunk、allowed。
scrapy+sphinx搭建搜索引擎PPT教学课件

scrapy+sphinx搭建搜索引擎
银平 2010-06-07
2020/12/10
1
Outline
a. Overview b. Scrapy – python爬虫框架 c. Sphinx – C++全文搜索引擎 d. demo – scrapy + sphinx实现小说搜索引擎
2020/12/10
(内存泄露) li.main>a/@href
2020/12/10
10
Sphinx – C++全文搜索引擎
a. Sphinx特性 b. Sphinx组件 c. 索引 d. 搜索 e. SphinxSE: mysql存储引擎
2020/12/10
11
Sphinx特性
PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释

PHP+Mysql+Sphinx高效的站内搜索引擎搭建详释●为什么要使用Sphinx假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方法也行)。
●Sphinx是什么Sphinx由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。
全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。
检索的对象有可能是文章的标题,也有可能是文章的作者,也有可能是文章摘要或内容。
●Sphinx的特性高速索引(在新款CPU上,近10 MB/秒);高速搜索(2-4G的文本量中平均查询速度不到0.1秒);高可用性(单CPU上最大可支持100 GB的文本,100M文档); 提供良好的相关性排名;支持分布式搜索; 提供文档摘要生成; 提供从MySQL内部的插件式存储引擎上搜索; 支持布尔,短语, 和近义词查询; 支持每个文档多个全文检索域(默认最大32个); 支持每个文档多属性; 支持断词; 支持单字节编码与UTF-8编码;●下载并安装Sphinx打开网址/news/7/52/ 找到适合自己的操作系统的版本,比如我是Windows 那么我就可以下载Coreseek Win32通用版本,Linux下可以下载源码包,自己编译安装。
这里解释下为什么我们下载的程序叫Coreseek,Coreseek是基于Sphinx开发的一款软件,对Sphinx做了一些改动,在中文方面支持得比Sphinx好,所以我们使用之。
下载完成后,将程序解压到你想解压的地方,比如我就想解压到E盘根目录,之后修改目录名为Coreseek,大功告成Coreseek安装完成了,安装的目录是在E:\coreseek\。
●使用Sphinx我要使用Sphinx需要做以下几件事1)首先得有数据2)建立Sphinx配置文件3)生成索引4)启动Sphinx5)使用之(调用api或search.exe程序进行查询)第1步:(导入数据)我们建立测试所需要用到得数据库、表以及数据,篇幅有限,这些在附件中都有,下载后导入MySQL即可。
SEO教程之搜索引擎工作原理

SEO教程之搜索引擎工作原理SEO分类:白帽SEO-黑帽SEO-灰帽SEO:1、白帽SEOSEO白帽是一种公正的手法,是使用符合主流搜索引擎发行方针规定的SEO优化方法。
一直被业内认为是最佳的SEO手法,它是在避免一切风险也避免了与搜索引擎发行方针发生任何的冲突,它也是SEOer从业者的最高职业道德标准。
因为搜索引擎是以文本为中心,许多有助于网页亲和力的同样手段同样便利于搜索引擎优化。
这些方法包括优化图形内容、包括ALT属性、和增加文本说明。
甚至Flash 动画可于设计该页时包括替代性内容,这本来用来给访客无法阅读Flash的环境用的,来帮助优化。
2、黑帽SEO笼统的说,所有使用作弊手段或可疑手段的,都可以称为黑帽SEO。
比如说垃圾链接,隐藏网页,刷IP流量,桥页,关键词堆砌等等。
SEO黑帽是一种不为搜索引擎所支持的违规行为,因为黑帽SEO挑战了行业道德底线,因此为被广大白帽SEO而所不齿。
垃圾索引(Spamdexing)意指通过欺骗技术和滥用搜索算法来推销毫不相关、主要以商业为着眼的网页。
许多搜索引擎管理员认为任何搜索引擎优化的形式,其目的用来改进站点的页排名者,都是垃圾索引。
然而,随时间流逝,业界内公众舆论发展出哪些是哪些不是可接受的、促进某站的搜索引擎排名与流量结果的手段。
3、灰帽SEOSEO灰帽是指介于白帽与黑帽之间的中间地带。
对于白帽而言,会采取一些取巧的手法,这些行为因为不算违规,但同样也不遵守规则,是为灰色地带。
它注重了优化的整体与局部的方方面面。
SEO灰帽追求的是某种程度的中庸。
SEO灰帽是白帽和黑帽手法的结合体,既考虑长期利益,也要考虑短期收益问题。
点评:黑帽SEO是我们作为一个SEOer早晚都要面对的,它即真实又显得虚妄。
黑帽SEO的规则就是:当你不能赢得游戏的时候,你只能去采取欺骗,这跟运动的道理是一样的,当每个人都超越你的时候,你该怎么学会去赢?需要指出的是:黑冒随时会因为搜索引擎算法的改变而面临惩罚。
Sphinx 全文搜索引擎

Sphinx 全文搜索引擎1:索引与全文索引的概念数据库中,表中的行特别多,如何快速的查询某一行,或者某一个文章中的单词,索引--->查询速度快全文索引-->针对文章内容中的单词各做索引2:mysql支不支持全文索引?答:支持, 但是A:innoDB引擎在5.5,及之前的版本不支持(5.7实测可以在innodb上建fulltext),只能在myisam 引擎上用fulltextB: mysql的全文索引功能不够强大C: 无法对中文进行合理的全文索引----- mysql.无法进行中文分词.注意:全文索引的停止词停止词是指出现频率极高的单词, 不予索引.如果某单词出现频率50%以上,列为停止词或者是经过统计的常用词,也列为停止词---如is, are , she, he, this 等等就像中文中: “的”,”是”,”呵呵”总结: 我们要对中文做全文搜索引擎,需要解决2个问题1: 性能提高,用第3方的全文搜索引擎工具,如sphinx, solr等2: 中文分词! (如mmseg)编译安装sphinx+mmseg == coreseek官网: 0: 安装工具包yum install make gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel1: 下载解压源码,ls查看csft-4.1 mmseg-3.2.14 README.txt testpack其中--csft-4.1是修改适应了中文环境后的sphinxMmseg 是中文分词插件Testpack是测试用的软件包2: 先安装mmseg2.1: cd mmseg2.2: 执行bootstrap脚本2.3: ./configure --prefix=/usr/local/mmseg2.4: make && make install3: 再安装sphinx(coreseek)3.1: 到其目录下执行buildconf.sh3.2: ./configure --prefix=/usr/local/sphinx--with-mysql=/usr/local/mysql--with-mmseg--with-mmseg-includes=/usr/local/mmseg/include/mmseg/--with-mmseg-libs=/usr/local/mmseg/lib/3.3: make installSphinx的使用分三个部分:1: 数据源---要让sphinx知道,查哪些数据,即针对哪些数据做索引(可以定义多个源)2: 索引配置--针对哪个源做索引, 索引文件放在哪个目录?? 等等3: 搜索服务器----sphinx可以在某个端口(默认9312),以其自身的协议,与外部程序做交互.具体的步骤:1: 数据源典型配置source test {type = mysqlsql_host = localhostsql_user = rootsql_pass =sql_db = testsql_query_pre = set names utf8sql_query_pre = set session query_cache_type=offsql_query = select id,catid,pubtime,title,content from newssql_attr_uint = idsql_attr_uint = catidsql_attr_timestamp = pubtimesql_query_info = select * from news where id=$id}2: 索引典型配置index test {type = plainsource = testpath = /usr/local/sphinx/var/data/test #生成索引放在哪docinfo = externcharset_dictpath = /usr/local/mmseg/etc/charset_type = zh_cn.utf-8}2.1: 生成索引文件/path/sphinx/bin/indexer -c ./etc/sphinx.test.conf test (test是索引名)2.2: 查询测试A:在命令下,用path/bin/search -c ./path/conf 关键词B:开启搜索服务器,利用客户端连接搜索服务器来查询,见下3: 配置搜索服务器接口,启动搜索服务器searchd {listen = localhost:9312pid_file = /usr/local/sphinx/var/log/searchd.pidlog = /usr/local/sphinx/var/log/test.logquery_log =/usr/local/sphinx/var/log/test.query.logclient_timeout = 5max_children = 5max_matches = 1000seamless_rotate = 1}3.2 : 使用客户端连接搜索服务器1)系统testpack包里带的sphinxapi.php2)编译php的sphinx扩展1: 官方搜索下载sphinx扩展的压缩包并解压(假设解析在/usr/local/src/sphinx) 2: /path/php/bin/phpize 执行3: configure --with-php-config=/xxx/path/php/bin/php-config出错: e rror: Cannot find libsphinxclient headers错误原因: 没有预告编译libsphinxclient4: 解决3中的错误cd /usr/local/src/sphinx/api/libsphixclient/目录下# sh buildconf.sh# ./configure# make && make install5: 编译php的sphinx.so扩展# cd /path/to/sphinx1.3.0/#./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx# make && make install6: 编辑php.ini,把sphinx.so扩展引入并重启apache, 如果是php-fpm方式运行,则重启php-fpm进程查询分3部分1: 查询2: 过滤3: 排序1.1: 查询的模式查询的模式直接影响查询结果,SPH_MA TCH_ALL, 匹配所有查询词(默认模式);SPH_MA TCH_ANY, 匹配查询词中的任意一个;SPH_MA TCH_PHRASE, 将整个查询看作一个词组,要求按顺序完整匹配;SPH_MA TCH_BOOLEAN, 将查询看作一个布尔表达式SPH_MA TCH_ALL->Query(‘西瓜南瓜’) // 文档中有西瓜并且有南瓜才被选中SPH_MA TCH_ANY //->Query(‘西瓜南瓜’) // 文档中有西瓜或有南瓜被选中S PH_MA TCH_PHRASE // 严格理解为两词连续如内容”西瓜南瓜东瓜”->Query(‘西瓜南瓜’), 可以命中->Query(‘西瓜东瓜’), 不能命中, 因为西瓜东瓜两词不连续如果你觉得切换模式麻烦,可用BOOLEAN模式SPH_MA TCH_BOOLAN / /这个模式,能达到上3个模式的效果,需要在查询词之间做表达式如words1 & words2 则等同SPH_MA TCH_ALLWords1 | words2 则,等同SPH_MA TCH_ANYWords1 << word2 则是word1,word2都要有,且words1出现在word2前面1.2: 按字段查询如:要求只查content字段中的”西瓜”关键词“西瓜”====>”@content 西瓜”注意: 按字段查询需要把查询模式设置成”SPH_MA TCH_EXTNEDED”2 按属性过滤SetIDRange($min,$max); // 按id的范围过滤SetFilter($attr,$values=array(),$exclue=false); //SetFilterRange ( $attribute, $min, $max, $exclude=false )SetFilterFloatRange (设置浮点数范围)SetLimits($offset,$limits) //设置偏移量及取出条目例:->SetIDRange(2,3);->SetLimits(2,2); 取第3-4条->SetFilter(‘catid’,array(3,4),false) ; 以catid in (3,4) 为条件进行过滤->SetFilter(‘catid’,array(3,4),true) ; 以catid not in (3,4) 为条件,进行过滤注意:如果setLimits中碰到”per-query max_matches=0 out of bounds (per-server max_matches=1000)”错误,可以通过给setLimits指定第3个参数为大于0的整数,来解决.3: 按属性或权重排序排序模式:SPH_SORT_RELEV ANCE 模式, 按相关度降序排列(最好的匹配排在最前面)SPH_SORT_ATTR_DESC 模式, 按属性降序排列(属性值越大的越是排在前面)SPH_SORT_ATTR_ASC 模式, 按属性升序排列(属性值越小的越是排在前面)SPH_SORT_TIME_SEGMENTS 模式, 先按时间段(最近一小时/天/周/月)降序,再按相关度降序SPH_SORT_EXTENDED 模式, 按一种类似SQL的方式将列组合起来,升序或降序排列。
sphinx 原理

sphinx 原理
Sphinx是一种文本检索引擎,它基于全文搜索技术,可以快速地搜索和检索大量的文档。
Sphinx的原理主要包括索引和查询两个方面。
首先是索引过程。
Sphinx通过解析文档集合,并根据预定的规则和标准,对文本进行切词、分析和归类。
在切词过程中,Sphinx会去除停用词(如冠词、介词等)和特殊字符,同时将词语转化为规范形式,以提高搜索的准确性。
然后,Sphinx 将处理后的词语组成倒排索引,建立词项与文档的映射关系。
倒排索引类似于一个词典,可以根据词项快速地找到包含该词项的文档。
其次是查询过程。
当用户发起搜索请求时,Sphinx先对查询进行与索引相同的切词、分析和归类操作。
然后,Sphinx根据用户的查询条件,在倒排索引中查找与之相关的文档。
这个查找过程实际上是一个检索和排名的过程,Sphinx通过使用BM25算法或其他相似的算法,根据文档与查询的相关性分数进行排序,并返回排名最高的文档作为搜索结果。
总的来说,Sphinx的原理是通过建立倒排索引,将文档集合切分、分析和归类,然后根据用户的查询条件,在倒排索引中快速定位与之相关的文档,并根据相关性分数进行排序,最终返回搜索结果。
这种全文搜索技术可以应用于各种大规模文本数据的搜索和检索场景。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引擎雏形:为了加速关键词查询这一过程,我们在用户与数据源 (例如mysql)之间加入引擎。引擎完成的功能我们可以简单这样 形容,在插入数据时候将文档进行了关键词分类,这样用户在查询 的时候能够快速锁定到文档位置,从而达到快速搜索。 引擎属于索引查找 把非结构化的数据中的内容提取出来一部分重 新组织,让它变的有结构化,这部分我们提取出来的数据就叫做 索引
Faster
搜索引擎(sphinx)
1
作者的新书电子版,欢迎您阅读 《elasticsearch7完全开发指南》: https:///view/8ff2ce94591b6bd97f192279168884868762b8e7 《kibana权威指南》: https:///view/24cfee1ce43a580216fc700abb68a98270fea词过滤
带索引文件(例如 金龙鱼油700ml )
大小写处理 单词缩减为词根形式,如“cars”到“car”等 单词转变为词根形式,如“drove”到“drive”等 过滤词语,如去除 the a 中文例如 的 我们 这些没必要的词语 做一些同义词 特殊词语的处理 ,如C++ 等 …………
1
7
8
hash key value
Key(充电 宝) value 2
Key(鞋) value 3
Key(哈密 瓜) value 4
3
1
2
5
6
4
7
9
10
12
索引创建(indexing) 请对比与上图的联系 此图就是索引存储方式 13
搜索索引(search) 例如搜索运动鞋
14
搜索索引(search)
Key(鞋) value 3
Key(哈密 瓜) value 4
1
3
1
2
7
5
6
4
8
7
9
10 9
索引创建(indexing)
索引中常用名词解释
Keyword
关键词 就是代表切分后索引词 例如运动鞋切分为运动和鞋,那么这
两个词都是关键词
Docs
关键词 击中的文档数目 例如右图 运动下面有三个商品
Key(运动) value 1
查询语句
词法分析处理
语法分析处理
a) 用户输入查询语句。 b) 对查询语句经过语法分析和语言分析 得到一系列词(Term)。 c) 通过语法分析得到一个查询树。 d) 利用查询树搜索索引,从而得到每个 词的文档链表,对文档链表进行交,差, 并得到结果文档。 e) 将搜索到的结果文档对查询的相关性 进行排序。 f) 返回查询结果给用户。
listname) values (1,“李宁运动品牌商店”,“篮球运动鞋 运 动型”,“李宁运动品牌商店”,“篮球运动鞋 运动型”); 我们就只看运动这个keyword
Keyword 运动 Docs 1 (文档数目) hits 3 (hit次数)
11
索引创建(indexing)
词典
Key(运动) value 1
赵建亭 大数据专家
Blog:https:///zhaojianting
2
我们为什么需要引擎
数据库关键词查询:例如现在有很多文档(文档内容比较长),但 是我们想查询哪些文档内容含有历史(假设查询关键字为 历史)这 个关键字。对于数据库查询方法而言,就是去遍历所有文档,并且 在文档中遍历查看是否存在历史这个关键词。 数据库属于顺序查找 如要找内容包含某个字符串的文件,会一个 文档一个文档的从头到尾的找,如 Like查找。
6
索引创建(indexing)
索引切分
例如现在我们有一个商品名字叫做金龙鱼油700ml,商品的id 1
现在我们以商品名字为索引插入sphinx Sphinx内置中文分词将切分金龙鱼油700ml 目前按照mmseg算法进行切分中文分词 切分完成后得到以下4个单词
金龙鱼 油 700 ml
用户搜索以上任何单词都可以找到id 1的商品(这是搜索最基本思路)
那么运动这个keyword的docs数据就是3
hits
1
关键词 击中的文档域数目 2种情况
第一 例如有个商品名字叫做 运动牌运动鞋 那么运动hit就是2 7
第二
商品名字 和 商店名字中都存在 运动关键词(都出现一次) 那么hit
就是2
8
10
索引创建(indexing)
举例说明keyword docs hits Insert into listing (id,rt_shopname,rt_listname,shopname,
3
Sphinx 官方文档介绍
Sphinx官方网址: /
Sphinx是一个基于SQL的全文检索引 擎,可以结合MySQL,PostgreSQL做 全文搜索,它可以提供比数据库本身 更专业的搜索功能,使得应用程序更 容易实现专业化的全文检索。Sphinx 特别为一些脚本语言设计搜索API接口, 如PHP,Python,Perl,Ruby等,同 时为MySQL也设计了一个存储引擎插 件。 Sphinx单一索引最大可包含1亿条记录, 在1千万条记录情况下的查询速度为 0.x秒(毫秒级)。Sphinx创建索引的 速度为:创建100万条记录的索引只 需 3~4分钟,创建1000万条记录的索 引可以在50分钟内完成,而只包含最 新10万条记录的增量索引,重建一次 只需几十秒。
4
某司使用sphinx的结构图
5
sphinx 全文检索两个过程
索引创建(indexing)将数据源通过一定方式提取信息 搜索索引(search)进根据用户查询请求,搜索创建的索引,返回索引内容
文档索引和属性的解释
文档索引 编制索引的源,sphinx以索引源来编制索引,编制完成后索引源不在存储 文档属性 搜索可以返回的内容,属性可以用来进行文档的过滤
词法分析语言处理
索引
Mmseg Token 金龙鱼 油 700 ml
分词处理
索引处理(索 引文档关系建 立)
8
索引创建(indexing)
假设我们现在有10件商品从1-10(文档id) 商品名字通过切分后形成如下关系表
词典
hash key value
Key(运动) value 1
Key(充电 宝) value 2