Lucene Solr 搭建手册java
1、demo搭建mysql
准备工做:web
Window server 2008+java_6.02+ apache-solr-1.4.0.zip+tomcat6sql
环境描述:数据库
将 apache-solr-1.4.0.zip解压到e:/Solr_home/ apache-solr-1.4.0apache
cd /u02/apache-solr-1.4.1/example浏览器
运行java -jar start.jartomcat
看到运行以后打开localhost:8983服务器
这个时候咱们会看到网络
Error 404 - Not Found.
No context on this server matched or handled this request.
Contexts known to this server are:
这个时候点击solr.war的连接就能够进入页面了
这样一个简单的demo就运行起来
2、标准安装(推荐按照黄色标记部分)
上面的简易安装方式终究不能运用于正式场合,所以仍是须要标准安装方式。
solr的安装其实须要作的事情很少,由于自己就只须要运行起来是一个打包好的war包,只要配置OK就能够运行于各个web container。
通用的solr安装步骤以下:
1. 准备好web container 如tomcat, jetty, resin等
注意安装前先中止web container服务器。
2.解压到随便一个地方,拿出如下两个文件:
<1>解压目录/dist/apache-solr-1.4.0.war;
<2>解压目录/example/solr;确保solr目录有如下文件存在:
solr/conf/solrconfig.xml;
solr/conf/schema.xml;
solr/data;[default index dir]
3.将解压后的dist/apache-solr-1.4.0.war拿到tomcat/webapps下,更名为solr.war[自定义];
4.创建solr home,新建一个文件夹,存放在e:/Solr_Home(名称自定义),将压缩文件/example/solr拷贝下来,做为一个基本模板,这样e:/Solr_Home/solr作为咱们的home,全部的配置文件将会从这里读取。
5.安装于tomcat,启动web container
启动时有两个东西须要作到:
1). 要运行的solr的webapp
能够经过直接复制solr的war包到webapp目录,也能够经过其余方式指定这个war的路径
总之是让web container启动solr这个应用。
推荐将解压出来的apache-solr-1.4.0.war,放到webapp目录
2). 要指明solr home (1.4版本只看4最简单)
方式有4种:
· 1. 设置java 的系统参数solr.solr.home(应该是solr.home,可是官网就是写成solr.solr.home)
· 如 -Dsolr.solr.home=C:\soft\solr
· 2. 设置JNDI lookup "java:comp/env/solr/home"
· 及在/conf/Catalina/localhost/solr.xml
· 3. 默认为./solr目录,即当前工做路径下的solr
· 因为工做路径容易形成问题,所以通常不推荐这种方式。(若是咱们启动tomcat的时候是从tomcat/bin中启动话,那么solr很傻的会把默认solr_home当成tomcat/bin,这样会在bin中去找conf文件形成报错)
· 4.solr1.4版本中的web.xml文件中能够直接设置solr home,因此前面设置能够不用设置,咱们在后面的地方再设置
6. 安装于tomcat
如下内容参考官网文档 http://wiki.apache.org/solr/SolrTomcat.
1. 修改tomcat的server.xml文件
主要是修改监听端口,另外须要设置URIEncoding为UTF-8。 注意:8080端口别重复用了,这里最好修改一下。
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
2. 增长tomcat\conf\Catalina\localhost\solr.xml文件 (若是方法2增长solr home那么此处就要配置)
内容为:
<xml version="1.0" encoding="utf-8">
<Context docBase="C:\soft\solr\apache-solr-1.4.1.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="C:\soft\solr" override="true"/>
</Context>
使用的tomcat版本为6.28。
6.此时访问http://localhost:8082/solr14会出现:
"HTTP Status 500 - Severe errors in solr configuration.";
7.打开webapps下的solr14/WEB-INF/web.xml,将注释掉的下面内容解放并修改value的值以下:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>e:/Solr_Home/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8.注意solr/home的值就是讲solr的conf和data目录等的所在地。
9.如今再次访问"http://localhost:8082/solr14/"是否是出现了"Welcome to Solr!"
这样的话,咱们就在tomcat中配置好了solr
3、链接数据库,增长数据库索引
solr功能很是强大,能够创建各类数据的索引,常见的企业应用中,少不了数据库的索引的建立,能够经过写程序 能够将数据读出100条,若是你的内存够大,能够是1000条甚至更多,而后放入Collection中,批量提交至solr。或者读取数据写入xml文件中,再将该文件提交到solr等等。可是,solr也自带了数据库建立索引的功能,步骤以下:
1、把下载到的apache-solr-1.4.0\example\example-DIH\solr里的内容复制到solr_home下,能够拿这个作模板使用 (原来的那个先重命名吧)
2、删除\solr\rss,修改e:\Solr_Home\sorl\solr.xml 文件,去掉<core default="true" instanceDir="rrs" name="rrs"></core>该行
3、复制mysql驱动到e:\Solr_Home\solr\db\lib文件夹
4、到此,完成,
运行测试:
开始-运行 启动tomcat6,若是上面配置无误,能够查看tomcat日志看是否有错误,肯定无错后,在浏览器输入http://localhost:8082/solr/db/dataimport?command=full-import,既能够看到输出
测试mysql数据库(驱动文件咱们已经拷贝到lib中)
环境和建立的文件夹延续上面的
步骤:
1、修改e:\Solr_Home\solr\solr.xml文件内容为
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<solr sharedLib="lib" persistent="true">
<cores adminPath="/admin/cores">
<core default="true" instanceDir="db" name="db"></core>
</cores>
</solr>
2、修改e:\Solr_Home\solr\db\conf\db-data-config.xml 内容为:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password=""/>
<document name="mybook">
<entity name="book" pk="id" query="select * from book">
<field column="id" name="id" />
<field column="bookname" name="bookname" />
<field column="bookathor" name="bookathor" />
</entity>
</document>
</dataConfig>
3、由于bookname、bookathor2个字段在e:\Solr_Home\solr\db\conf\schema.xml不存在,因此,要增长着2个field
<field name="bookname" type="string" indexed="true" stored="true" required="true" />
<field name="bookathor" type="string" indexed="true" stored="true" required="true" />
注意:在该文件有<field 的地方增长,
4、将e:\Solr_Home\solr\db\conf\solrconfig.xml
设置<dataDir>${solr.data.dir:./solr/db/data}</dataDir>
5、到此完成
运行测试:
开始-运行 cmd 进入命令行,切换目录到D:\tomcat6.0.29,输入bin\startup.bat,启动tomcat6,若是上面配置无误,能够查看tomcat日志看是否有错误,肯定无错后,在浏览器输入http://127.0.0.1:8082/solr/db/dataimport?command=full-import,既能够看到输出。经过上面访问,就建立了数据库索引
能够访问http://127.0.0.1:8082/solr/db/admin/,在Query String: 输入id:搜索内容(格式为 要搜索的字段:搜索关键字)来测试是否已经将数据表中的数据创建了索引,也能够在该界面修改搜索的参数
最后在说说这个功能。上面的例子只不过是很简单的一个部分。针对solr的MultiCore,经过配置db-data-config.xml也能够实现,还有多表,或者多表关联等等操做只要在db-data-config.xml配置清楚均可以进行数据的导入。
在solr1.4中还有更多的扩展功能,这些功能为重建索引提供能很方便的操做。并且,datasource不仅仅指的是database,能够是xml文件,还能够是来自网络上的等等。