作者:雯雯2046 | 来源:互联网 | 2023-07-01 01:22
python网盘下载,python基础教程网盘
全文搜索方案
1.全文搜索和搜索引擎原理商品搜索要求
用户在搜索框中输入商品关键词后,向用户提供相关商品的搜索结果。
实现商品检索
也可以通过使用类似关键字的模糊查询来实现。
但是like关键字效率极低。
必须在多个字段进行查询,使用like关键字不方便。
全文检索方案
我们引入全文检索的方案来实现商品检索。
全文搜索在您指定的任何字段中执行搜索查询。
全文检索方案需要结合搜索引擎来实现。
搜索引擎原理
搜索引擎进行全文搜索时,会对数据库中的数据进行预处理,并单独创建索引结构数据。
索引数据类似于新华字典的索引搜索页面,包含关键词与词条的对应关系,记录词条的位置。
全文搜索时,搜索引擎会快速比较索引数据中的搜索关键词,找出数据的实际存储位置。
结论:
搜索引擎生成类似新华字典索引检索页面的索引结构数据。在全文检索过程中,可以在索引数据中快速比较和检索关键字,以找到数据的实际存储位置。
2.Elasticsearch介绍实现全文搜索的搜索引擎,首选Elasticsearch。
Elasticsearch是一个用Java实现的开源搜索引擎。
可以快速存储、搜索和分析大量数据。在维基百科、stack overflow、Github等地方都有采用。
Elasticsearch基于开源库Lucene。但是,Lucene不能直接使用。您必须编写自己的代码来调用该接口。
分词
在索引数据时,搜索引擎必须进行分词。
分词是指将一个词分解成多个词或词,这些词或词是该词的关键词。
比如我来自中国。
分词后:我,是的,中国,中国,中国,中国等等是这个词的关键词。
Elasticsearch不支持中文分词索引,需要结合扩展的elasticsearch-analysis-ik实现中文分词。
使用代理安装Elasticsearch 1。获取电子搜索-ik图像
#从仓库镜像$ sudockerimepurdellron/elastic search-ik:2 . 4 . 6-1.0 #教科书到本地镜像$ sudockerload-ielasticsearch-#
将教程中的elasticsearc-2.4.6目录复制到home目录。
修改/home/python/elastic searc-2 . 4 . 6/config/elastic search . yml中的第54行。
将ip地址更改为本地实际ip地址。
用Docker运行弹性搜索-ik
$ sudockerrun-DTI-name=elastic search-network=host-v/home/python/elastic search-2 . 4 . 6/config 3366666