什么是搜索技术
在mysql中我们使用的搜索是直接使用Like进行搜索,搜索出来的数据是不准的同时也是错误的
出现问题
1、大批量数据需要做模糊搜索
2、搜索结果词进行拆分
3、拆分后字体变色等
普通缺陷
1、没有高效的索引方式,所以查询的速度大量数据的情况下是很慢的
2、搜索效果差,用户只能对指定的关键字进行模糊匹配搜索,用户输入错误会导致没有办法匹配
搜索技术
1、分类
搜索技术分为两种通常一种是垂直搜索和综合搜索
2、倒排索引
倒排索引又叫反向索引以字或者词为文档中出现的位置情况
常规我们会使用分词吧需要做分词的字段进行分词,分词之后在用ID去数据库中拿数据
Lucene概述
什么是Lucene
Lucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供
Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具
Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品
官网:http://lucene.apache.org/
什么是全文检索
计算机索引程序通过扫描文章中的每一个关键词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先简历的索引进行查找,并将查找的结果反馈给用户的检索方式。
Lucene、Solr、Elasticsearch
Lucene:底层的API,工具包
Solr:基于Lucene开发的企业级的搜索引擎产品
Elasticsearch:基于Lucene开发的企业级的搜索引擎产品