solr 安装

1:solr简介

	solr是一个开源的搜索引擎,是对lucene做了封装,对外提供类似于webservice接口,
	可以使用http请求的方式对solr进行操作。
	
	lucene、solr、elasticsearch是java领域比较常用的搜索工具。
	
	lucene比较底层。
	solr对lucene做了封装,可以简单的实现一个站内搜索功能,solr4.0之后
		出现了solrcloud,也支持分布式存储和搜索。
	elasticsearch对lucene做了封装,并且elasticsearch是天生支持分布式的。
	

2:solr的特点

	通过http协议对solr进行操作
	增加了缓存功能,查询更快
	提供的有web界面
	支持结果分类(fact),类似于数据库中的groupby
	支持分布式(solrcloud)

3:solr安装部署启动

必须先安装JDK,并设置JAVA_HOME环境变量,jdk的版本不能低于1.7
下载,解压,启动
cd /usr/local
tar -zxvf solr-4.10.4
cd solr-4.10.4/example
java -jar start.jar
solr启动之后默认监听8983端口,可以访问http://ip:8983/solr进行访问验证

4:solr的两种启动方式

	1):java -jar start.jar
		默认在前台启动。
		后台启动:java -jar start.jar --daemon &(这样启动之后只能kill杀进程)
		后台启动:java -DSTOP.KEY=solr -DSTOP.PORT=8984 -jar start.jar --daemon &
				针对这种启动方式,可以使用下面命令停止solr
				java -DSTOP.KEY=solr -DSTOP.PORT=8984 -jar start.jar --stop
				
		指定端口启动solr
			java -Djetty.port=8984 -jar start.jar
	2):bin/solr start
		默认在后台启动,使用bin/solr start -f可以在前台启动
		指定端口启动:bin/solr start -p 8984
		
		停止solr:bin/solr stop -p 8984或者 bin/solr stop -all
		
		查看启动的solr服务:bin/solr -i
		
		注意:solr脚本启动底层也是调用了start.jar
		
	3):使用tomcat启动solr
		暂时不建议使用,可以参考PPT或者提供的文档<使用tomcat启动solr.txt>

5:solr-web项目位置

	默认情况下,使用java -jar start.jar启动solr的时候,会在当前目录下的webapps目录
		下面找solr.war,并且还会把这个项目解压到当前目录下的solr-webapp/webapp目录下。
	
	如果使用的是bin/solr脚本启动的话,会默认到SOLR_HOME下面找example目录(通过脚本可以发现),
	会找这个目录下面的webapps/solr.war 解压到solr-webapp/webapp目录下,
	
	
	
	如果修改了SOLR_HOME下面的example文件名(mv example crxy)
	那么使用java -jar start.jar 方式启动没问题。
	使用bin/solr启动则会报错。
	
	所以需要在启动的时候指定一下修改之后的文件夹名称
	bin/solr start -d crxy
	

6:solr中的solr.solr.home属性

	这个属性指定了solr core的根目录。
	默认情况下会找exampl下的solr目录。
	
	如果这个目录的名称被修改了之后,使用bin/solr脚本启动的时候就必须要指定了
	假设把名称改为 solr2 
		mv expample/solr example/solr2
	则执行是需要这样指定
	bin/solr start -s solr2
	
	如果使用tomcat启动的话,可以参考<使用tomcat启动solr.txt>设置这个属性。

7:solr启动总结

	使用java -jar start.jar方式启动的时候 
		默认会在当前目录下的webapps/下面找solr.war
		会在在当前目录下的solr中找solr core的配置信息
	
	使用bin/solr脚本启动的话
		默认是在example下面找solr的web项目和sorl core的根目录。

8:solr管理界面

	如果使用的IE版本过低的话,访问会报错。
	访问地址:http://ip:8983/solr
	

9:向solr中索引数据

	先使用sorl提供的测试数据
	cd solr-4.10.4/example/exampledocs
	java -jar post.jar hd.xml
	
	这样会向solr中添加两条数据。
	
	注意:这个索引过程会找本机的solr服务,使用http://localhost:8983/solr/update 进行访问。

10:schema.xml文件分析

	field:定义字段的一些基本属性,字段名称,字段类型,是否存储,是否建立索引。。。
	dynamicField:动态字段,可以通过提前设置一些动态字段,实现后期动态增加字段。
		动态字段的名称可以使用通配符,一般使用*,这个*只能在名称的前面或者后面。
		不能单独使用*。
	uniqueKey:设置主键字段。
	copyfield:拷贝字段。可以把多个字段的内容拷贝到一个字段中,方便后期查询。
	fieldtype:在field标签中,type属性的值就是在这定义的。可以设置一些字段的解析方式。