solr+redis综合查询
一、solr和redis简介
redis是基于缓冲的高效存储读取数据的一个服务端工具,redis是基于key value存储的,访问速度是很快的,基本结构有string,hash,list、set等;听说将在3.2中提出经度纬度查询,目前只有不稳定版本,玩了一下还可以。redis的优势在于高效,但是同时存在以下不足,如不支持模糊查询,不支持分组查询,不支持比运算符查询;
solr是基于luence的搜索引擎系统,通过文件系统实现较高效率的大数据查询,支持分组,排序,模糊查询等;solr主要是解决数据库访问频繁,和解决数据索引无法解决的查询,如果在按照条件查询中,通过索引去解决搜索效率,你将会发现会有很多索引需要创建,而大量索引的创建,又会引发一些列的问题。solr完美解决了这些问题,并提供了http请求的方式达到添加数据和查询数据
二、呵呵哒
在搜索商品或者店铺的时候,由于搜索条件中可能包含很多,如价格、所在地、商品类型、关键字;如果通过搜索引擎如果对价格等4个关键字段添加联合索引是无法实现高效查询的,因为数据库索引具有最左原则,如果用户只输入所在地是无法命中索引;如果对单个字段都添加索引也无法解决问题,因为一个查询只能命中一个索引,呵呵哒,如果使用redis查询的话,存在一些困难,如果查询价格在10-20元之间的商品redis是可以通过强大的工具或者代码能力搞定,但是价格区间不是确定的,说以就算给redis模拟索引也是无法满足条件的,呵呵哒;然后使用solr吧,将数据一并丢给solr,solr通过luence创建文件索引,可以实现快速查询,这就是solr的优势;