单机版
安装环境
上传压缩包到/usr/local/software/下
解压安装包,进入解压目录的bin目录下,启动命令:
./solr start -force
默认端口是8983,请求虚拟机, http://地址:8983/solr/
进入/usr/local/software/solr-7.7.1/server/solr,创建new_core文件夹,这个名字可以自定义
将solr-7.7.1/server/solr/configsets/_default/conf文件夹复制到new_core下
点击页面中的Core Admin这里的instanceDir和刚才创建的new_core文件夹名字是对应的
点击Add Core
创建成功后:
中文分词
配置中文分词,中文分词需要的资源在这个压缩包下:
把中文分词的jar包复制到solr-7.7.1/server/solr-webapp/webapp/WEB-INF/lib下
在new_core/conf下有一个managed-schema文件,编辑文件,在文件结束标签之前中加入:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
重启solr,选择中文分词器,可以对中文进行分析
./solr stop
导入数据库数据
如果需要从数据库中批量导入数据,可以使用Dataimport
修改new_core/conf下的solrconfig.xml,加入如下内容
在new_core的conf下创建,创建data-config.xml
在data-config.xml中加入如下内容:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/travel_db?characterEncoding=utf-8" user="root" password="root" />
<document>
<entity name="hotel" query="select ID,TITLE,PRICE,IMAGE,CITY_NAME, CITY_ID from HOTEL" dataSource="JdbcDataSource">
<field column="ID" name="id" />
<field column="TITLE" name="item_title" />
<field column="PRICE" name="item_price" />
<field column="CONTENT" name="item_content" />
<field column="IMAGE" name="item_image" />
<field column="CITY_NAME" name="item_city_name" />
<field column="CITY_ID" name="item_city_id" />
</entity>
</document>
</dataConfig>
new_core/conf下有一个managed-schema文件加入
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="plong" indexed="true" stored="true"/>
<field name="item_city_id" type="plong" indexed="true" stored="true"/>
<field name="item_city_name" type="string" indexed="true" stored="true" />
<field name="item_image" type="string" indexed="true" stored="true" />
<field name="item_content" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_city_name" dest="item_keywords"/>
<copyField source="item_content" dest="item_keywords"/>
修改solrhome/new_core/conf/solrconfig.xml,设置默认查找字段(非必须):
把solr-7.7.1/dist下两个solr-dataimporthandler的jar复制到solr-7.7.1/server/solr-webapp/webapp/WEB-INF/lib下,还要连接数据库的驱动包mysql-connector-java.jar
重启solr
查询
集群版
搭建zookeeper集群
复制三份单机版的zookeeper,分别复制到solr-cloud下的zookeeper01、zookeeper02、zookeeper03中。也可以使用zookeeper的安装包解压过来。
修改zookeeper0x/conf/zoo.conf,其中x代表1/2/3
dataDir分别是zookeeper01、zookeeper02、zookeeper03下的data目录,如果你是解压过来的,这个data需要你自己创建。如果你是复制的单机版,data下面可能有东西,把data文件夹下所有的文件夹都删掉,保证data文件夹是空的。
clientPort默认是2181,因为2181 被单机版的zookeeper占用了,所以这里换2281,zookeeper02就是2282,zookeeper03就是2283
三个zookeeper的zoo.conf文件末尾都要追加:
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
其中127.0.0.1应该改成你服务器的真实ip,因为我们搭在一台机器上,可以使用本机地址,避免你虚拟机ip改变后无法使用集群。第一个端口是zk内部通信端口,第二个是投票端口
启动服务,命令是:
/usr/local/software/solr-cloud/zookeeper01/bin/zkServer.sh start
/usr/local/software/solr-cloud/zookeeper02/bin/zkServer.sh start
/usr/local/software/solr-cloud/zookeeper03/bin/zkServer.sh start
查看集群状态
安装solr
安装4个solr,或者把单机版的solr复制4遍。
修改每个solr 的/bin/solr.in.sh,配置zookeeper集群地址和solr地址
修改端口,每个端口不以一样
修改每个solr下的server/solr/solr.xml
在任意一个solr的bin目录执行,
./solr create -c collection5 -s 2 -rf 2 -force
其中-c是创建集合 -s是分片个数 -rf副本个数
启动每个solr