全文检索Elasticsearch

场景:当用户在搜索框输入商品关键字,我们要为用户提供相关商品搜索结果。

当然搜索的实现可以选择模糊查询,使用like关键字来实现,但是like关键词的效率极低,且在多个字段之间进行查询,like也并不便捷。

这里全文检索需要配合搜索引擎来实现。

搜索引擎的原理:搜索引擎进行全文检索时,会对数据库中的数据进行一遍预处理,单独建立起一份索引结构。 

索引结构类似字典,包含了关键字与词条的对应关系,并记录对应词条的位置。搜索引擎进行全文检索时,将关键字在索引在索引
数据中进行快速对比查找,进而找到数据的对应的实际位置。

Elasticsearch

Elasticserch是用java实现的,开源的搜索引擎

可以快速的存储搜索分析海量的数据,它的底层是开源库Lucene,但是没法直接使用,必须自己写代码去调用它的接口。

es安装

安装java最新的jdk(1.8版本以上)

全文检索Elasticsearch_第1张图片

下载es

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz

移动到home下进行解压

全文检索Elasticsearch_第2张图片

创建用户(Es默认不允许root用户启动)

全文检索Elasticsearch_第3张图片

修改节点配置

全文检索Elasticsearch_第4张图片

配置es文件

全文检索Elasticsearch_第5张图片

全文检索Elasticsearch_第6张图片

全文检索Elasticsearch_第7张图片

全文检索Elasticsearch_第8张图片

全文检索Elasticsearch_第9张图片

全文检索Elasticsearch_第10张图片

全文检索Elasticsearch_第11张图片

vim /etc/security/limits.conf

全文检索Elasticsearch_第12张图片

vim /etc/sysctl.conf

全文检索Elasticsearch_第13张图片

启动es

全文检索Elasticsearch_第14张图片

全文检索Elasticsearch_第15张图片

Haystack对接Elasticsearch服务端

Haystack是在Django中对接搜索引擎的框架,搭建了用户和搜索引擎之间的沟通桥梁。在django中可以通过使用Haystack来调用Elasticsearch搜索引擎。

Haystack可以在不修改代码的情况下可以使用不同的搜索后端。如whoosh,elasticsearch

这里Haystack的相关介绍和安装配置以及建立数据索引在之前的文章中已经给出步骤,需要可以参考。

 

你可能感兴趣的:(全文检索Elasticsearch)