Solr-5:Tomcat中部署Solr-5.5
Posted 健哥说编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr-5:Tomcat中部署Solr-5.5相关的知识,希望对你有一定的参考价值。
1、将Colr部署到Tomcat中
对于tomcat版本,没有太多要求。只要能正常运行就可以了。
步1、打包solr
在solr-5.5.5\server\solr-webapp\webapp目录下,执行:
> java -cvf solr.war *
此时,将打成一个war包:solr.war。
步2、将solr.war放到tomcat/webapps目录下
apache-tomcat-8.5.34\webapps
solr.war
步3、启动tomcat
运行apache-tomcat-8.5.34\bin\startup.bat文件。运行这个文件,会自动解压solr.war文件。
以下是已经解压的solr:
步4、copy几个jar包
将Solr的目录,solr-5.5.5\server\lib\ext目录下以下几个jar包:
拷贝到:apache-tomcat-8.5.34\webapps\solr\WEB-INF\lib目录下。就是将solr的几个包放到tomcat运行环境下的solr项目中。
步5、拷贝日志文件log4j.properties
拷贝solr-5.5.5\server\resources目录下的log4j.properties文件,
到apache-tomcat-8.5.34\webapps\solr\WEB-INF\classes目录下。如果没有classess目录,请手工创建它。
步6、修改solr_home
修改apache-tomcat-8.5.34\webapps\solr\WEB-INF目录下的web.xml文件,添加以下内容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>D:/solr_home</env-entry-value>
</env-entry>
图示:
说明:solr_home可以是任何的目录,我们这儿设置成D:/solr_home。然后去D:/盘,创建solr_home文件夹。
步7、拷贝配置文件
将solr-5.5.5\server\solr目录下的所有文件:
拷贝到D:/solr_home目录下:
步8、查看solr服务
到时,可以重新启动一下tomcat。然后查看
http://localhost:8080/solr/index.html#/
显示上面的内容,说明启动成功。
可以访问admin.html,则不会有 This is an experimental UI的提示:
http://localhost:8080/solr/admin.html#/
步9、创建一个core
1、在D:/solr_home目录下,创建一个core1目录:D:\solr_home\core1
2、将D:\solr_home\configsets\basic_configs目录下的文件,拷贝到core1目录下。
可选的删除里面的文件:_rest_managed.json
步10、在界面上,创建一个core
如果后台没有core1目录,则这儿将创建不成功,所以先创建后台的那个目录。
创建成功以后显示的信息:
然后就可以通过以下位置,查看:
OK ,到此,你已经创建了一个Core。
步11、添加索引字段
修改文件:D:\solr_home\core1\conf\managed-schema。
添加以下索引:(注意,由于之前已经有了id索引字段,所以不用再重复添加)
<field name="name" type="string" indexed="true" stored="true"/>
<field name="address" type="string" indexed="true" stored="true"/>
<field name="age" type="string" indexed="true" stored="true"/>
保存以后,可以直接通过页面查看:
步12、添加数据
1、在页面上添加数据
按以下规则输入数据:
<add>
<doc>
<field name="id">S001</field>
<field name="name">Jack</field>
<field name="address">Chinese ShangDong</field>
<field name="age">34</field>
</doc>
<doc>
<field name="id">S002</field>
<field name="name">张三</field>
<field name="address">中国北京</field>
<field name="age">55</field>
</doc>
</add>
保存完成以后,再刷新一下,就会看到有两个文档,已经添加成功了:
然后就可以去测试下查询结果:
就可以查询出数据:
2、通过post.jar添加文档
Post.jar在目录D:\programfiles\solr-5.5.5\example\exampledocs下,里面都是示例文档。
可以将post.jar放到任意的目录下,通过java -jar执行。
获取post.jar的使用帮助可以输入以下命令:java -jar post.jar -h,其中-h是指help。注意post.jar要输入完整目录:
D:\a\a1>java -jar D:/a/post.jar -h
SimplePostTool version 5.0.0
Usage: java [SystemProperties] -jar post.jar [-h|-] [<file|folder|url|arg> [<fil
e|folder|url|arg>...]]
Supported System Properties and their defaults:
-Dc=<core/collection>
-Durl=<base Solr update URL> (overrides -Dc option if specified)
-Ddata=files|web|args|stdin (default=files)
-Dtype=<content-type> (default=application/xml)
-Dhost=<host> (default: localhost)
-Dport=<port> (default: 8983)
-Dauto=yes|no (default=no)
-Drecursive=yes|no|<depth> (default=0)
-Ddelay=<seconds> (default=0 for files, 10 for web)
-Dfiletypes=<type>[,<type>,...] (default=xml,json,jsonl,csv,pdf,doc,docx,ppt,p
ptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log)
-Dparams="<key>=<value>[&<key>=<value>...]" (values must be URL-encoded)
-Dcommit=yes|no (default=yes)
-Doptimize=yes|no (default=no)
-Dout=yes|no (default=no)
This is a simple command line tool for POSTing raw data to a Solr port.
NOTE: Specifying the url/core/collection name is mandatory.
Data can be read from files specified as commandline args,
URLs specified as args, as raw commandline arg strings or via STDIN.
Examples:
java -Dc=gettingstarted -jar post.jar *.xml
java -Ddata=args -Dc=gettingstarted -jar post.jar '<delete><id>42</id></delete
>'
java -Ddata=stdin -Dc=gettingstarted -jar post.jar < hd.xml
java -Ddata=web -Dc=gettingstarted -jar post.jar http://example.com/
java -Dtype=text/csv -Dc=gettingstarted -jar post.jar *.csv
java -Dtype=application/json -Dc=gettingstarted -jar post.jar *.json
java -Durl=http://localhost:8983/solr/techproducts/update/extract -Dparams=lit
eral.id=pdf1 -jar post.jar solr-word.pdf
java -Dauto -Dc=gettingstarted -jar post.jar *
java -Dauto -Dc=gettingstarted -Drecursive -jar post.jar afolder
java -Dauto -Dc=gettingstarted -Dfiletypes=ppt,html -jar post.jar afolder
The options controlled by System Properties include the Solr
URL to POST to, the Content-Type of the data, whether a commit
or optimize should be executed, and whether the response should
be written to STDOUT. If auto=yes the tool will try to set type
automatically from file name. When posting rich documents the
file name will be propagated as "resource.name" and also used
as "literal.id". You may override these or any other request parameter
through the -Dparams property. To do a commit only, use "-" as argument.
The web mode is a simple crawler following links within domain, default delay=10
s.
现在上传一个文档:
在任意的目录下创建一个a.xml文件,并输入以下内容:
<add>
<doc>
<field name="id">S003</field>
<field name="name">Smith</field>
<field name="address">US</field>
<field name="age">38</field>
</doc>
<doc>
<field name="id">S004</field>
<field name="name">李四</field>
<field name="address">中国山东济南</field>
<field name="age">25</field>
</doc>
</add>
然后使用post.jar上传,注意post.jar默认将使用localhost:8983端口。
完整命令:
D:\a\a1>java -Ddata=stdin -Dc=core1 -Durl=http://localhost:8080/solr/core1/update -jar d:/a/post.jar < D:/a/a.xml
SimplePostTool version 5.0.0
POSTing stdin to http://localhost:8080/solr/core1/update...
COMMITting Solr index changes to http://localhost:8080/solr/core1/update...
Time spent: 0:00:00.131
执行完成以后,直接查看文档数量,原来是2个,现在是4个:
查询测试:
以上是关于Solr-5:Tomcat中部署Solr-5.5的主要内容,如果未能解决你的问题,请参考以下文章