分布式多用户能力的全文搜索引擎,基于Lucene的搜索服务器
优采云 发布时间: 2021-05-15 01:07分布式多用户能力的全文搜索引擎,基于Lucene的搜索服务器
前言:
在开发项目中,通常具有搜索功能。如果它是面向C端的搜索功能,则通常会特别测试性能。例如,在普通购物中心系统中进行商品搜索或对某些资源进行现场搜索。
也许以前的方法是通过名称或产品描述对产品表进行模糊查询。细分搜索关键字并构建特殊的搜索字典表甚至更好。但是,在早期阶段,需要分解搜索词,然后将功率集组合并与产品ID关联。以完全匹配的方式查询搜索词和词库表中的词,并找到产品ID。
尽管建立同义词库表也是一个很好的解决方案,但是反汇编数据库以建立索引相对比较麻烦。因此,我还了解了Internet上的Elasticsearch。我计划将来使用ES进行现场搜索。这是他的基本用法的简要介绍。
ES简介:
ElasticSearch是基于Lucene的搜索服务器。它基于RESTful Web界面提供了具有分布式多用户功能的全文本搜索引擎。 Elasticsearch是用Java开发的,并根据Apache许可的条款作为开源发布。这是一个流行的企业搜索引擎。专为云计算而设计,可以实现实时搜索,稳定,可靠,快速,易于安装和使用。
下载并安装:
1.找到官方网站,然后根据您的系统下载相应的版本,当前版本超过200M。
2.解压缩后,在目录的bin中打开“ elasticsearch.bat”以启动它。
3.启动时间相对较慢。以下仅演示了单个计算机和单个节点的用法,并且可以稍后配置分布式配置。
编码用法:
以下是使用ThinkPHP 6. 0. 2的演示,因此在打开ES服务之后,请先打开浏览器以访问12 7. 0. 0. 1:9200,如果返回到以下内容,则表示已成功打开它。
1.在ThinkPHP 6. 0中,通过composer install elasticsearch / elasticsearch下载ES依赖包。如果composer速度较慢,则可以在安装前尝试下载方法。
每次您要在本地使用ES时,必须首先打开elasticsearch.bat文件,否则将出现以下提示。
2.在使用它之前,您需要了解ES的几个术语:索引,类型,文档,字段和映射。而且ES以宁静的风格进行查询,因此您可以将前面的名词与MySQL数据库,表,列和SQL关联。例如,索引等效于MySQL数据库,文档等效于表中的记录。宁静请求类似于SQL语句。例如,GET索引名称/类型/ ID可以获取文档数据,POST,PUT,DELETE等可以创建索引,创建/修改/删除文档等。可以查询正式文档,然后对不同的请求使用POSTMAN 12 7. 0. 0. 1:9200。
3.现在,在安装ES依赖项之后回到ThinkPHP6。您可以封装ES基本方法工具类。
<p>