solr5.5.3使用随感

solr5.5.3使用有感

1.部署solr-webapp(solr5.5.3+jdk1.7+tomcat8)

a.将solr-5.5.3/server/solr-webapp/webapp文件夹复制到tomcat的webapps目录下,并重命名为solr;

b.将solr-5.5.3/server/lib/ext中的文件复制到solr/WEB-INF/lib目录下;

c.将solr-5.5.3/server/resources/log4j.properties复制到solr/WEB-INF/classes目录下;

d.将solr-5.5.3/server/solr中的文件复制到某个目录下,如C:/MyWork/solr_home;

e.打开solr/WEB-INF下的web.xml,找到如下配置内容:

<env-entry>

<env-entry-name>solr/home</env-entry-name>

<env-entry-value>/put/your/solr/home/here</env-entry-value>

<env-entry-type>java.lang.String</env-entry-type>

</env-entry>

将<env-entry-value>中的内容改成你的solr_home路径,这里是C:/MyWork/solr_home;

f.启动tomcat,在浏览器输入http://localhost:8080/solr/admin.html即可出现Solr的管理界面。
solr5.5.3使用随感
 

2.新建一个core

a.在C:/MyWork/solr_home下新建一个目录core1;

b.将C:/MyWork/solr_home/configsets/sample_techproducts_configs下的conf复制到core1下;

c.在界面上添加一个core,名为core1。

solr5.5.3使用随感
 

3.连接数据库

a.在C:/MyWork/solr_home/core1/conf/solrconfig.xml中增加

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

<lst name="defaults">

<str name="config">data-config.xml</str>

</lst>

</requestHandler>;

b.新建data-config.xml(该文件必须以<?xml version="1.0" encoding="UTF-8"?>开头),内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<dataConfig>

<dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver"

    url="jdbc:oracle:thin:@192.168.138.11:1521:orcl2"

    user="testgovuser"

    password="testgovusers"/>

 

<document>

    <entity name="bisDemo" query="select t.*, 'bis_demo' as resourcename from bis_demo t">

<field column="id" name="id"/>

<field column="title" name="title"/>

<field column="resourcename" name="resourcename"/>

    </entity>

 

    <entity name="cmsUser" query="select userid as id, username as name, 'cms_user' as resourcename from cms_user where state = 1">

<field column="id" name="id"/>

<field column="name" name="name"/>

<field column="resourcename" name="resourcename"/>

    </entity>

</document>

</dataConfig>

表要能建索引,需要有全局唯一的主键(UUID),update_time字段以及is_del字段;

如果表的字段和managed-schema中的name不一致的话,要通过as调整成一致,并额外增加一个resourcename来标记是哪张表的数据;

c.dataConfig中entity的field的name要存在于managed-schema才能查询得到,所以如果不存在,要手动往managed-schema里添加;

d.将solr-5.5.3/dist下的solr-dataimporthandler-5.5.3.jar和solr-dataimporthandler-extras-5.5.3.jar复制到solr/WEB-INF/lib目录下;

e.将数据库驱动文件ojdbc14-10.2.0.4.0.jar复制到solr/WEB-INF/lib目录下;

f.打开管理界面Dataimport,导入数据;
solr5.5.3使用随感
 g.查询数据Query,q->title:1 or id:1表示title或者id中包括1;
solr5.5.3使用随感
 h.同步数据

全部导入:http://localhost:8080/solr/core1/dataimport?command=full-import。