安装所需的软件
solr7.4是以tomcat作为web容器进行安装的,安装所需的软件有:
- VMware 12.5.5
- Ubuntu 16.04
- Java 1.8
- Tomcat 8
- Solr 7.4
当前默认以安装好VMWare 12.5.5、Ubuntu 16.04、Java 1.8、Tomcat 8
一、Solr 7.4安装
-
下载Solr,当前安装Solr版本为7.4.0,点击下载
-
输入:
sudo cp solr-7.4.0.tgz /usr/local
,将Solr拷贝到安装目录 -
输入:
sudo tar -zxvf solr-7.4.0.tgz
,对solr进行解压 -
输入:
sudo mv solr-7.4.0 solr
,对Solr进行重命名 -
输入:
sudo cp -r solr/server/solr-webapp/webapp tomcat/webapps/solr
,将webapp作为项目拷贝到tomcat,并且重命名为Solr -
输入:
sudo cp solr/server/lib/ext/*.jar tomcat/webapps/solr/WEB-INF/lib/
,将Solr ext下的jar包拷贝到Tomcat Solr项目中 -
输入:
sudo cp solr/server/lib/*metric*.jar tomcat/webapps/solr/WEB-INF/lib/
,将Solr lib下的metrics开头的包拷贝到到Tomcat Solr项目中 -
输入:
sudo mkdir tomcat/webapps/solr/WEB-INF/classes
,创建Solr项目的classes文件夹 -
输入:
sudo cp solr/server/resources/jetty-logging.properties tomcat/webapps/solr/WEB-INF/classes/
,将jetty-logging.properties拷贝到Solr项目中 -
输入:
sudo cp solr/server/resources/log4j2.xml tomcat/webapps/solr/WEB-INF/classes/
,将log4j2.xml拷贝到Solr项目 -
输入:
sudo cp -r solr/server/solr tomcat/webapps/solr/solrhome
,定义solrhome -
输入:
sudo gedit tomcat/webapps/solr/WEB-INF/web.xml
,对web.xml进行修改<!-- 定义SolrHome --> <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/tomcat/webapps/solr/solrhome/</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> <!-- 注释掉权限控制代码 --> <!-- <security-constraint> <web-resource-collection> <web-resource-name>Disable TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Enable everything but TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method-omission>TRACE</http-method-omission> </web-resource-collection> </security-constraint> -->
-
输入:http://ip:port/solr/index.html#/后,显示Solr控制台页面,表示Solr安装成功
二、创建Core
-
输入:
sudo mkdir tomcat/webapps/solr/solrhome/article/
,在solrhome下创建文件夹 -
输入:
sudo cp -r tomcat/webapps/solr/solrhome/configsets/_default/conf/ tomcat/webapps/solr/solrhome/article/
,将conf文件夹拷贝到article下 -
输入:
sudo mkdir tomcat/webapps/solr/solrhome/article/data/
,在article下创建data文件夹 -
输入:
sudo gedit tomcat/webapps/solr/solrhome/article/core.properties
,在创建文件中添加内容:name=article
-
输入:http://ip:port/solr/index.html#/article,说明Core已经配置正确
三、整合分词
-
输入:
sudo cp ~/Downloads/ext.dic tomcat/webapps/solr/WEB-INF/classes/
,将扩展字典拷贝到classes下 -
输入:
sudo cp ~/Downloads/IKAnalyzer.cfg.xml tomcat/webapps/solr/WEB-INF/classes/
,将配置文件拷贝到classes下 -
输入:
sudo cp ~/Downloads/stopword.dic tomcat/webapps/solr/WEB-INF/classes/
,将stopword.dic拷贝到classes下 -
输入:
sudo cp ~/Downloads/ik-analyzer.jar tomcat/webapps/solr/WEB-INF/lib/
,将分词jar包拷贝到lib下 -
输入:
sudo gedit tomcat/webapps/solr/solrhome/article/conf/managed-schema
,添加分词配置如下:<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> <!-- 或者如下配置 --> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/> </analyzer> </fieldType>
-
输入:
sudo gedit tomcat/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml
,对配置文件进行修改<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict">ext.dic;</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry> </properties>
-
输入:
sudo gedit tomcat/webapps/solr/solrhome/artile/conf/managed-schema
,对core中的字段进行定义,定义如下:<field name="age" type="string" multiValued="false" indexed="true" stored="true"/> <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/> <field name="info" type="text_ik" multiValued="false" indexed="true" stored="true"/> <field name="name" type="string" multiValued="false" indexed="true" stored="true"/>
-
输入:
sudo gedit tomcat/webapps/solr/solrhome/article/conf/solrconfig.xml
,对默认搜索字段进行定义<requestHandler name="/select" class="solr.SearchHandler"> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int> <!-- 定义默认搜索字段 --> <str name="df">info</str> </lst> </requestHandler>
-
输入:
sudo gedit tomcat/webapps/solr/solrhome/article/conf/solrconfig.xml
,输入以下内容,可进行数据库数据导入到solr<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
在同目录下新建data-config.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource name="dataSource" type="JdbcDataSource" driver="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://url:1433/database;useLOBs=false" user="user" password="password" /> <document> <entity name="Table" dataSource="dataSource" pk="id" query="SELECT * FROM Table"> <field column='id' name='id' /> <field column='name' name='name' /> <field column='age' name='age' /> <field column='info' name='info' /> </entity> </document> </dataConfig>