如何实现solr和数据库交互

(1)问题分析

考官主要考核对solr的熟悉程度和solr创建索引方面的知识

(2)核心答案讲解

Solr和数据库的交互是将数据库的数据进行分词后生成索引保存在solr的服务中;
而生成索引的方式有三种:
A:通过solr服务的可视化界面的dataimport插件批量导入索引数据,需要配置data-config.xml文件中的字段和数据库的连接信息等来实现.
修改solrconfig.xml
1)配置handler

2)添加配置文件 data-config.xml
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/pyg"
user="root"
password="root"/>
3)添加jar dataimporthandler需要的jar
solr-dataimporthandler
solr-dataimporthandler-extras
MySQL驱动包
4)重启tomcat
B:通过solrJ来实现,solrJ是solr服务的java客户端,提供索引和搜索的请求方法。
SolrServer solrServer = new HttpSolrServer("http://localhost:8888/solr/collection1");
SolrDocument solrDocument = new SolrDocument();
solrDocument.setField("item_title","商品标题");
solrDocument.setField("item_image","http://192.168.25.133/group1/00/m0/lugvwye6179931.jpg");
solrDocument.setField("item_seller","小米旗舰店");
solrServer.add(solrDocument);
C:通过使用Spring data Solr框架来实现生成索引
其底层使用的还是solrJ;通过配置solrTemplate来对索引库进行增删改查的操作,项目中就是使用这种方式的

class="org.apache.solr.handler.dataimport.DataImportHandler">
      data-config.xml

2)添加配置文件 data-config.xml
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/pyg"
user="root"
password="root"/>
3)添加jar dataimporthandler需要的jar
solr-dataimporthandler
solr-dataimporthandler-extras
MySQL驱动包
4)重启tomcat
B:通过solrJ来实现,solrJ是solr服务的java客户端,提供索引和搜索的请求方法。
SolrServer solrServer = new HttpSolrServer("http://localhost:8888/solr/collection1");
SolrDocument solrDocument = new SolrDocument();
solrDocument.setField("item_title","商品标题");
solrDocument.setField("item_image","http://192.168.25.133/group1/00/m0/lugvwye6179931.jpg");
solrDocument.setField("item_seller","小米旗舰店");
solrServer.add(solrDocument);
C:通过使用Spring data Solr框架来实现生成索引
其底层使用的还是solrJ;通过配置solrTemplate来对索引库进行增删改查的操作,项目中就是使用这种方式的

(3)问题扩展

修改商品信息后需要将新的商品信息同步到索引库,从而保证solr的索引数据和数据库的数据一致

(4)结合项目中使用

在商城中,使用solr服务来完成商品的搜索,从而提高搜索效率。具体参考品优购的第九天和第十天

点击此处
隐藏目录