25对Solr的思考

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20042935/article/details/90082181

写完文章后对Solr不是有一个很清晰的认识,所以问了一下同事,实际开发中的solr是怎样的。下面从京东商城举个例子来记录下。

打开京东商城,输入“零食”两个字,会展示出如下内容:
在这里插入图片描述

会查询的各种各样的零食,为什么会这么快就查询出来呢?

如果直接查询数据库,使用LIKE的操作,那该多久才查出来。其实这里使用到了类似于solr的技术。

可以这样去思考,如下图:
在这里插入图片描述

在用户上传商品的时候,会上传图片,标题内容,详细内容等。可以看成是如下格式:

public class Prudct{
	private String imageUrl;
	private String title;
	private String content;
	setter ...
	gettter...
}

用户上传商品的时候,会先把内容解析,并插入数据库(MySQL或Oracle等);

此时还要插入Solr,并生成索引。插入之前要在scheme.xml里添加上面的字段:
在这里插入图片描述

然后使用代码添加到solr,使用方法addField:

//		1、获取solr的服务器 用于连接solr项目
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");
//		2、执行solrServer的添加方法
		SolrInputDocument doc = new SolrInputDocument();
		doc.addField("imageUrl", "https://item.jd.com/3924063.html");
		doc.addField("title", "京东超市良品铺子高端零食 鸭肉大礼.。。。。。;
		doc.addField("content", "鸭脖鸭掌肉类零食大礼包一整箱490g*1 【限时下单立减10元】【吃货节狂欢专场】【进店抢爆款第2件1元】戳我抢!抢!抢!。。。。。。");
		solrServer.add(doc);
		solrServer.commit();

这样就添加到了solr,下次用户查询“零食”的时候,会直接访问solr,直接就能快速获取到了零食的相关内容了。

猜你喜欢

转载自blog.csdn.net/qq_20042935/article/details/90082181
25