本文只是Solr 4.0的基础教程,本人不经常写东西,写的不好请见谅,欢迎到群233413850进行讨论学习。
转载请标明原文地址:http://my.oschina.net/zhanyu/blog/86147
先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为HttpSolrServer,我是找了半天才发现,大家以后可以注意。
部署前准备:
Solr 4.0 目录:

这里是我的部署方式,Tomcat安装好之后把apache-solr-4.0.0\example\webapps下的solr.war文件拷贝到Tomcat下的Tomcat7.0\webapps目录下,然后启动Tomcat 报错不用管,solr.war会自动解压,之后打开Tomcat7.0\webapps\solr\WEB-INF\web.xml,把下面代码复制进去放到后面:
2
|
<env-entry-name>solr/home</env-entry-name>
|
3
|
<env-entry-value>E:\SolrHome</env-entry-value>
|
4
|
<env-entry-type>java.lang.String</env-entry-type>
|
其中 E:\SolrHome 是存放solr配置文件等,修改为自己文件的位置,为了看着更清晰直观,你可以这样放:
E:\Tomcat7.0
E:\apache-solr-4.0.0
E:\SolrHome
现在可以重新启动Tomcat了,没有报错,通过这个地址进入Solr4.0页面:http://localhost:8080/solr

如果进入以上界面说明成功了,没有成功的话页面会有ERROR提示。
如图:左侧core0,core1等是solr 4.0中的示例,core0和core1位于apache-solr-4.0.0\example\multicore所有文件都下拷贝到E:\SoleHome下,core0和core1可以理解为两个库,都是独立的,用来存放索引以及生成这些索引文件所需要的配置文件,solrtest是我测试建立的目录,如图:

没添加一个库都需要在solr.xml里面进行配置,这个比较简单
1
|
<solr persistent="false">
|
2
|
<cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
|
3
|
<core name="core0" instanceDir="core0" />
|
4
|
<core name="core1" instanceDir="core1" />
|
5
|
<core name="collection1" instanceDir="collection1" />
|
6
|
<core name="solrtest" instanceDir="solrtest"/>
|
1
|
name="",是库的名字,instanceDir="",是目录
|
每个目录下包含两个文件夹conf和data,data下有两个文件夹index和tlog,index是存放生成的索引文件,tlog存放log,conf下是必要的配置文件schema.xml和solrconfig.xml,可以参考官方或者core里面的配置文件:
01
|
<?xml version="1.0" ?>
|
02
|
<schema name="example
solr test" version="1.1">
|
04
|
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
|
05
|
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
|
10
|
<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
|
11
|
<field name="type" type="string" indexed="true" stored="true" multiValued="false" />
|
12
|
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
|
13
|
<field name="_version_" type="long" indexed="true" stored="true"/>
|
17
|
<uniqueKey>id</uniqueKey>
|
20
|
<defaultSearchField>name</defaultSearchField>
|
23
|
<solrQueryParser defaultOperator="OR"/>
|
solrconfig.xml我还不是很懂,在这里就不讲了,但是必须配置(好像是必须配):
01
|
<?xml version="1.0" encoding="UTF-8" ?>
|
04
|
<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
|
06
|
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
|
08
|
<dataDir>${solr.solrtest.data.dir:}</dataDir>
solr.solrtest.data.dir存放的是索引目录
|
10
|
<updateHandler class="solr.DirectUpdateHandler2">
|
12
|
<str name="dir">${solr.solrtest.data.dir:}</str>
|
16
|
<requestHandler name="/get" class="solr.RealTimeGetHandler">
|
18
|
<str name="omitHeader">true</str>
|
22
|
<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
|
24
|
<requestDispatcher handleSelect="true" >
|
25
|
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
|
28
|
<requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
|
29
|
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
|
30
|
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
|
31
|
<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
|
33
|
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
|
34
|
<lst name="invariants">
|
35
|
<str name="q">solrpingquery</str>
|
38
|
<str name="echoParams">all</str>
|
44
|
<defaultQuery>solr</defaultQuery>
|
之后在exampledocs目录下手动创建一个solr1.xml文件:
4
|
<field name="id">solr1</field>
|
5
|
<field name="type">type1</field>
|
6
|
<field name="name">my
solr test</field>
|
跟schema.xml中的字段对应,好了现在可以提交数据了,这里在window命令窗口提交数据,把E:\apache-solr-4.0.0\example\exampledocs下的post.jar复制到 E:\SolrHome\exampledocs下
打开命令窗口CD 到E:\SolrHome\exampledocs下使用命令,Tomcat不要忘了开:
java -Durl=http://localhost:8080/solr/solrtest/update -Ddata=files -jar post.jar solr1.xml

如图成功的添加的索引,看下E:\SolrHome\solrtest\data\index下的文件:

进入solr页面:

点击Executu Query查询,右侧生成了地址可以打开查看,到此结束。