solr不是一个应用而是一个插件,不分linux和windows版本,是对luence的一个封装
windows下搭建
这里忽略java安装和tomcat安装,这里使用的是solr-4.10.0
1、到apache下载solr,地址:
http://mirrors.hust.edu.cn/apache/lucene/solr/
2、解压出solr-4.10.0
3、复制solr-4.10.0\example\webapps中的solr.war文件到tomcat安装目录中的webapps文件夹下
4、运行tomcat。(忽略怎么运行tomcat),tomcat会自动解压solr.war文件。
5、删除solr.war文件。(不然每次启动tomcat都会发布一次)
6、回到tomcat的webapps目录下,记事本打开solr\WEB-INF\web.xml文件。
加入如下代码:在<web-app />节点内的最后。
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:\solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
如上代码,需要在E盘新建一个文件夹:solrhome
7、回到解压的solr-4.10.0目录,打开文件夹:solr-4.10.0\example\solr,复制所有内容到E:\solrhome
8、打开文件夹:solr-4.10.0\example\lib\ext,复制所有jar包到tomcat的webapps\solr\WEB-INF\lib下。
9、运行web:http://localhost:8899/solr,将看到如下画面:
10、在E:\solrhome目录下,新建一个mycore文件夹。
11、在解压的solr-4.10.0\example\multicore目录中,复制core0文件夹到E:\solrhome\mycore中。
12、在E:\solrhome中新建一个文件夹:mydocs
13、复制解压的solr-4.10.0\example\exampledocs下的post.jar到E:\solrhome\mydocs中
14、复制解压的solr-4.10.0\example\multicore\exampledocs下的ipod_other.xml文件到E:\solrhome\mydocs中
15、在solr web page中新建core:
16、重启tomcat。(如何重启,忽略)
17、打开CMD,运行下面语句:(怎么在命令行下运行java就不说了)
java -Durl=http://localhost:8899/solr/mycore/update -Ddata=files -jar post.jar ipod_other.xml
18、在solr web中选择core:
19、查询测试:
20、也可以直接使用URL查询:
http://localhost:8899/solr/mycore/select?q=name%3AB*&wt=json&indent=true&_=1410949535746
返回JSON:
{
"responseHeader":{
"status":0,
"QTime":0},
"response":{"numFound":1,"start":0,"docs":[
{
"id":"F8V7067-APL-KIT",
"name":"Belkin Mobile Power Cord for iPod w/ Dock",
"_version_":1479481822989516800}]
}}
原来solr可以不使用tomcat/jboss等服务器,它自身已经集成了web服务功能。搭建方法:
(这里使用的是solr-4.10.0,跳过安装java)
1、打开解压出来的solr目录,找到这个目录solr-4.10.0\example,里边有一个start.jar文件。(现在不管,之后使用)
2、打开web.xml文件,文件位于:solr-4.10.0\example\solr-webapp\webapp\WEB-INF
加入这段xml到<web-app/>内:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>F:\Tools\Java\solr-4.10.0\example\solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
其中,<env-entry-value/>的值就是solr home。
事实上,这个就是tomcat/jboss下的solr web,把需要的jar包都复制到这里的lib目录下即可。比如IKAnalyzer2012FF_u1.jar / mysql-connector-java-5.1.7-bin.jar等
4、启动solr。回到第1步,目录:solr-4.10.0\example,运行命令:
5、打开浏览器,输入地址:
http://localhost:8983/solr
结果:
linux下搭建solr
资源地址:http://download.csdn.net/detail/wwwyuanliang10000/4192482
软件版本:
apache-tomcat-6.0.35.tar.gz 下载地址为: http://tomcat.apache.org/download-70.cgi
apache-solr -3.2.0.tgz 下载地址为: http://apache.etoak.com/lucene/solr/3.2.0/
1.安装tomcat:
1.1 将apache-tomcat-6.0.35.tar.gz拷贝到路径/usr下后,
先后执行命令:# cd /usr
# tar -zxvf apache-tomcat-6.0.35.tar.gz
# mv apache-tomcat-6.0.35 tomcat
1.2 将apache-solr-3.2.0.tgz 拷贝到路径/usr下后
执行命令:#tar -zxvf apache-solr-3.2.0.tgz
进入apache-solr-3.2.0\dist目录:
#cd /usr/apache-solr-3.2.0/dist
将里面的solr.war放到安装好的tomcat/webapps下:
#mv apache-solr-3.2.0.war /usr/tomcat/webapps/solr.war
2.
2.1启动tomcat会自动解压solr.war:
#cd /usr/tomcat/bin
#./startup.sh
2.2 设置context指向你的solr工程:
在tomcat/conf/Catalina/localhost/目录下创建solr.xml文件
#cd /usr/tomcat/conf
#mkdir -p Catalina/localhost
#cd Catalina/localhost
#vi solr.xml
该文件内容如下:
<Context docBase="/usr/tomcat/webapps/solr.war"
debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String"
value="/usr/solr" override="true" />
</Context>
在上面value的值路径/usr下建立文件夹solr,
#cd /usr
#mkdir solr
(主要是配置文件路径 :可能会出错 can't find resource 'solrconfig.xml' 路径配置不正确)
---------------------------------------------------------------------------------------------
3. 我们需要将一些配置和index库文件放到文件夹/usr/solr下。解压的apache-solr-3.2.0\example\solr目录 下,
#cd /usr/apache-solr-3.2.0/example/solr
将里面的conf目录和solr.xml文件copy到刚才我们建的文件夹/usr/solr目录下,
#cp -rf conf /usr/solr
#cp solr.xml /usr/solr
重启tomcat就ok了。
1.2 solr 和web容器 集合
1.2.1 在工程目录中 web.xml中配置
- <filter>
- <filter-name>SolrRequestFilter</filter-name>
- <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>SolrRequestFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <env-entry>
- <env-entry-name>solr/home</env-entry-name>
- <env-entry-value>D:/Tomcat 6.0/webapps/mysolr/conf/multicore</env-entry-value>
- <env-entry-type>java.lang.String</env-entry-type>
- </env-entry>
1.2.2 solrj的使用,通过CommonsHttpSolrServer连接多core实例,对其添加删除索引
- public static final String url = "http://localhost:28080/mysolr/core0";
-
- static CommonsHttpSolrServer server;
-
- public void init(){
-
- try {
-
- server = new CommonsHttpSolrServer(url);
-
- server.setSoTimeout(1000);
- server.setConnectionTimeout(100);
- server.setDefaultMaxConnectionsPerHost(100);
- server.setMaxTotalConnections(100);
- server.setFollowRedirects(false);
- server.setAllowCompression(true);
- server.setMaxRetries(1);
-
- } catch (MalformedURLException e) {
-
- e.printStackTrace();
- }
-
- }
1.2.3 创建索引 和删除索引,具体需要修改D:\Tomcat 6.0\webapps\mysolr\conf\multicore\core0\conf 下面的schema.xml文件
- <field name="msg_title" type="textComplex" indexed="true" stored="true" />
- <field name="msg_content" type="textComplex" indexed="true" stored="true" />
- <field name="msg_all" type="textComplex" indexed="true" stored="false" multiValued="true"/>
-
- <defaultSearchField>msg_all</defaultSearchField><span style="font-family: SimSun; "> </span>
- @Test
- public void test01() throws SolrServerException, IOException{
-
- init();
- server.deleteByQuery("*:*");
- server.commit();
-
- SolrInputDocument doc = new SolrInputDocument();
-
-
- doc.addField("id", "1");
- doc.addField("msg_title", "这是我的第一个solrj程序");
- doc.addField("msg_content", "我的solrj的程序究竟能不能跑的起来呢?");
-
-
- server.add(doc);
- server.commit();
-
- }