全文检索Elasticsearch

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

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

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

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

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

Elasticsearch

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

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

es安装

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

下载es

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

移动到home下进行解压

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

修改节点配置

配置es文件

vim /etc/security/limits.conf

vim /etc/sysctl.conf

启动es

Haystack对接Elasticsearch服务端

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

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

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

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值