最近在做solr的项目将本地搭建solr整理如下:
1.从官网(solr官网链接)下载solr8.0windows版本 以及对应的高版本tomcat tomcat官网链接(我下载的是tomcat9.0)准备工作最后一步新增solr_home空文件夹 完毕后开始上图;
(1).准备工作图
(2).在新增的tomcat 下的webapp中 新增solr 并且将E:\testSolr\solr-8.0.0\server\solr-webapp\webapp文件夹下的所有内容copy到我们的E:\testSolr\apache-tomcat-9.0.19\webapps\solr 该目录下
(3).将E:\testSolr\solr-8.0.0\server\solr下的全部文件copy到solr_home 中 该目录将会成为我们的solr data 和core的文件
(4).将E:\testSolr\solr-8.0.0\server\lib\ext的全部jar和E:\testSolr\solr-8.0.0\server\lib 中的metrics-core等五个jar包拷贝到E:\testSolr\apache-tomcat-9.0.19\webapps\solr\WEB-INF\lib下 如果不知道E:\testSolr\solr-8.0.0\server\lib 下的额jar包 可以全部拷贝过去就行了。(当然我们还可以在改目录下映入mysql的包 方便以后使用mysql )
(5).一定要记住这一步 配置E:\testSolr\apache-tomcat-9.0.19\webapps\solr\WEB-INF 下的 web.xml 以及新增class文件 class下的两个文件内容如下 已经web.xml 中的内容如下
一、web.xml 具体位置就放在filter上或者随便哪里都行
内容为
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/testSolr/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
二、 新增class文件 并且在class下新增 jetty-logging.properties log4j.properties
jetty-logging.properties 内容为:
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
log4j.properties 中的内容为:
# Logging level
solr.log=logs
#log4j.rootLogger=INFO, file, CONSOLE
log4j.rootLogger=INFO, file
#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n
#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9
#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN
# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF
(7)最后一步 就是将E:\testSolr\apache-tomcat-9.0.19\webapps\solr\WEB-INF 下的 web.xml中的权限验证 注释掉就行(切记)
<-- <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>-->
(8).启动tomcat即可然后在访问localhost:8080/solr/index.html
2.启动之后就是我们的具体创建solr的core了(一定要引入mysql那个链接的)
(1).在E:\testSolr\solr_home\下新建 自己的core的名字
(2).将E:\testSolr\solr_home\configsets\_default\conf下的所有文件拷贝到E:\testSolr\solr_home\下(还有一种方式将来再说)
(3).solr的图形页面中添加core即可 名字和刚才新增名字相同
新增前:
新增后:
(3).这就是我们的意义上的一个库了. 接下来我们可以对呀进行添加字段链接库 可以是从页面中dataimport移入 也可以是从java文件中引入 这里不介绍 dataimport(具体无非就是改solrconfig.xml中引入dataimport 并且将dataimport 中的jar 引入然后从页面操作即可).
创建完core之后我们可以从页面中引入如下图:
也可以从manager-shema.xml中直接引入
只需要加入我们的字段即可
3.接下来 其实solr的使用 基本应该没什么问题了补充一些solr的删除命令 以及在刚使用时候我们可以直接使用dataimport 和data-config.xml直接 导入数据库的数据
(1).删除命令 比较常用:客户端
documents type 选择 XML
documents 输入下面语句
<delete><query>*:*</query></delete>
<commit/>
(2).fq 和q 这两个我认为没什么说的 就是 字段名:值这种类型的 比如
start 和rows 无非就是分页 对于sort排序 支持desc等
(3).关于dataimport 和dataconfig.xml有人想用可以来这里看看
首先配置在solrconfig.xml中引入dataconfig.xml
<requestHandler
name="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
并且 solrconfig.xml中配置 引入相关的dataimport
<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir=".${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
在该E:\testSolr\solr_home\testCore 下新增data-config.xml文件 内容如下(配置自己的数据库就行)
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.100.246:3308/dtest1"
user="zkbc"
password="password"/>
<document>
<entity name="user" query="SELECT * FROM answer_userinfo ">
<field column="id" name="id"/>
<field column="userId" name="userId"/>
<field column="grade" name="grade"/>
</entity>
</document>
</dataConfig>
配置完毕之后 具体页面操作 重启我们solr的tomcat 页面就是下图了 点击 就可以了就能导入数据了