这种方法是我自己依据对tomcat运行项目流程和solr的运行流程来自己弄的,所以有点麻烦,请到原地址查看心血谢谢:http://blog.csdn.net/chunlei_zhang/article/details/38449037。公司提倡的是基于框架扩展,而不是改变框架原有的配置(这个不好说明确),这样的方式利于实施的人实施。只是我不赞成这样的,由于不论什么事情仅仅要存在就有存在的理由,假设实施者一点都学不到东西,他也会感觉非常没劲,对吧?另外一种方式我实验成功后也告诉大家。
一、首先下载全部的软件:Eclipse 4.3 环境 +tomcat 7.5 +solr软件
二、在Eclipse环境下创建一个Dynamic Program File,命名为solr2。删除solr2的WebRoot下的全部内容,然后解压找到solr.war目录,将其解压,放到solr2的WebRoot下,这个时候会出现红色的叉号,先不用管;
三、拷贝到WebRoot下后,然后找到web.xml,然后再web.xml配置下面内容:
<pre name="code" class="html"><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" metadata-complete="true" > <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
cvc-complex-type.2.4.a: Invalid content was found starting with element 'env-entry-type'. One of '{"http://java.sun.com/xml/ns/javaee":mapped-name, "http://java.sun.com/xml/ns/ javaee":injection-target}' is expected.我看了非常多中国博客,只是答案都是考过来拷过去,没有一个解决的,还有的说直接将2.5换成2.4都是不正确的,方法非常easy直接将value和type交换一下就好了。交换后例如以下:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>E:/solr</env-entry-value> </env-entry>
四、配置solrCore,首先依据步骤三配置的value建立文件夹,然后再solr文件下创建solr.xml.对solr.xml配置例如以下:
<?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="hello" instanceDir="hello" /> </cores> </solr>
adminPath="/admin/cores"是固定写法,我们仅仅须要配置solrCore就能够了,我的solrCore名字就是hello
五.、依据步骤四写的solrCore的名字,相同在solr目录下创建hello目录,然后再在hello目录下创建conf目录,去solrExample中,将solrConfig.xml和schema.xml文件考到conf文件加下就可以。当然我们能够配置多个solrCore.
步骤四和步骤五的结构图:
hello下的结构为:
conf文件下内容:
六、然后我们就能够执行了,执行结果明天展示,今天又到1点了,房东睡了,舍友也把灯关了,明天展示结果。
当你执行的时候会发现报sl4j的错误,这个时候仅仅要去solr-4.9.0\example\lib\ext的文件加下将jar包和log4.properties考到lib目录下(log4.properties放到Web-INF):
输入url:http://localhost:8080/HelloWorld执行结果:
查看配置的core: