黑马程序员技术交流社区
标题:
搜索的常用引擎原理以及介绍(Elasticsearch)
[打印本页]
作者:
成熟的编程人员
时间:
2019-6-6 12:58
标题:
搜索的常用引擎原理以及介绍(Elasticsearch)
1. 全文检索和搜索引擎原理
商品搜索需求
当用户在搜索框输入商品关键字后,我们要为用户提供相关的商品搜索结果。
商品搜索实现
可以选择使用模糊查询like关键字实现。
但是 like 关键字的效率极低。
查询需要在多个字段中进行,使用 like 关键字也不方便。
全文检索方案
我们引入全文检索的方案来实现商品搜索。
全文检索即在指定的任意字段中进行检索查询。
全文检索方案需要配合搜索引擎来实现。
2. Elasticsearch介绍
实现全文检索的搜索引擎,首选的是Elasticsearch。
Elasticsearch
是用 Java 实现的,开源的搜索引擎。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github等都采用它。
Elasticsearch 的底层是开源库
Lucene
。但是,没法直接使用 Lucene,必须自己写代码去调用它的接口。
分词说明
搜索引擎在对数据构建索引时,需要进行分词处理。
分词是指将一句话拆解成多个单字 或 词,这些字或词便是这句话的关键词。
比如:我是中国人
分词后:我、是、中、国、人、中国等等都可以是这句话的关键字。
Elasticsearch 不支持对中文进行分词建立索引,需要配合扩展elasticsearch-analysis-ik来实现中文分词处理。
3. Haystack介绍和安装配置
1.Haystack介绍
Haystack 是在Django中对接搜索引擎的框架,搭建了用户和搜索引擎之间的沟通桥梁。
我们在Django中可以通过使用 Haystack 来调用 Elasticsearch 搜索引擎。
Haystack 可以在不修改代码的情况下使用不同的搜索后端(比如 Elasticsearch、Whoosh、Solr等等)。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2