| 
 | 
	
 
 
  一般要搜索的信息都是被存储在数据库里面的,但是我们不能直接搜数据库,所以只有借助Solr将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用。 
 
一、链接数据库 
 
1. SQL配置 
  拿SQL Server 为例,需要先下载Sql Server的jar包,下载地址: 
  http://msdn.microsoft.com/en-us/data/aa937724.aspx 
  解压缩之后将sqljdbc4.jar复制到webapps\solr\WEB-INF\lib下,也就是本例的: 
  D:\apache-tomcat-7.0.57\webapps\solr\WEB-INF\lib 
 
2. 建立查询 
  然后在D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf下面新建一个配置文件:data-config.xml 
  然后在本目录下编辑配置文件:solrconfig.xml 
  找到很多个requestHandler节点,在最下面增加: 
 
 
 
  
  
D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf\data-config.xml  
  
 
  要配置的内容就是刚才新建文件的路径。 
 
3. 将初次下载的solr-4.10.2文件夹下的dist, contrib文件夹复制到TomCat根目录下: 
 
 
 
4. 然后再次修改刚才编辑过的solrconfig.xml增加两个文件夹的配置并修改一些参数: 
  大约在75行默认有8个路径,但是路径不一定全对,顺着这个配置的路径去找文件夹,根据查找的层数修改这个路径配置,另增加一个新的配置,全文如下: 
 
 
 
   
 
 
 
 
 
 
 
 
  这个配置是根据本机推导出来的,大家根据自己的实际情况去修改。 
 
5. 将dist文件夹下的 
 
 
  复制到webapps\solr\WEB-INF\lib下。 
 
6. 然后编辑 
  D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf\data-confing.xml文件,以本机MyBookShop数据库的Books表为例 
 
 
  配置如下: 
 
 
 
  
 
 
 
             
  
  
 
 
 
  此配置千万注意。 
  上述配置说明如下: 
       query是获取全部数据的SQL(solr从sql中获取那些数据),多列 
       deltaImportQuery是获取增量数据时使用的SQL(数据库新增数据追加到solr的数据),多列 
       deltaQuery是获取pk的SQL(数据库新增数据是,追加到solr的数据时的条件,根据id ,条件是最后一次获取的时间,${dataimporter.last_index_time,最后获取的时间}),一列 
  如需配置多列,步骤如: 
  1.先配置数据库查询信息data config: 
 
 
 
                     
  
  
  
  
 
 
  2. 配置schema信息(约120多行处): 
 
 
 
     
 
 
 
 
 
 
  还有约270多行处 
 
 
 
    
 
 
 
 
 
 
  这样查处的结果就如: 
 
 
 
    "docs": [ 
{ 
"title1": "樱桃", 
"title2": "樱桃樱桃", 
"id": "1004", 
"descr": "", 
"_version_": 1503960451691577300 
}, 
 
   
  保证SQL SERVER配置了外网访问即可。 
  配置到此基本结束。 
 
二、建立索引 
  启动Solr,删除全部索引数据: 
  http://localhost:8080/solr/update/?stream.body=*:*&stream.contentType=text/xml;charset=utf-8&commit=true 
  停掉Solr,检查下是不是清空了: 
 
 
  开始创建新的索引,浏览器执行方式: 
  终止跑索引:http://localhost:8080/solr/collection1/dataimport?command=abort 
  开始索引:http://localhost:8080/solr/collection1/dataimport?command=full-import 
  增量索引 :http://localhost:8080/solr/collection1/dataimport?command=delta-import 
  建议学习时使用UI的方式进行更新,能看清运行过程: 
 
 
  需要等执行结束,可以点击【Refrush status】看结果: 
  Indexing completed. Added/Updated: 1076 documents. Deleted 0 documents. (Duration: 03s) 
  表示结束。 
  然后点击左边的查询检验索引结果: 
 
 
  出现查询结果表示创建成功。 
 
三、更新索引、增加索引、删除索引 
 
1. 更新数据: 
  我们先来搜索一个关键字“土豆”,这里全是计算机图书,不应该有土豆的。 
 
 
  然后将其中一个书籍的标题更新为“论土豆的栽培技术” 
 
 
  不更新索引是搜不到的。 
 
 
  执行增量更新: 
  http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true 
  然后去查询: 
 
 
  已经可以查询得到了。 
 
2. 新增一个数据:“论苹果的艺术” 
 
 
 
insert into [MyBookShop].[dbo].[Books] 
( 
[Title] 
,[Author] 
,[PublishDate] 
,[WordsCount] 
,[UnitPrice] 
,[ContentDescription] 
,[AurhorDescription] 
,[EditorComment] 
,[TOC] 
) 
SELECT '论苹果的艺术' 
,[Author] 
,[PublishDate] 
,[WordsCount] 
,[UnitPrice] 
,[ContentDescription] 
,[AurhorDescription] 
,[EditorComment] 
,[TOC] 
FROM [MyBookShop].[dbo].[Books] where id=4942 
  新增结果如下:  
 
 
  然后执行增量索引: 
  http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true 
  再查询: 
 
 
  发现新结果被查询出来了。 
 
3. 删除数据 
  将苹果这条数据删除掉,仍然能够查询出来,执行单条索引删除: 
  7168&stream.contentType=text/xml;charset=utf-8&commit=true">http://localhost:8080/solr/update/?stream.body=7168&stream.contentType=text/xml;charset=utf-8&commit=true 
  再次查询就查不到了: 
 
 
   
  数据库下载 |   
 
 
 
 | 
  
 |