-版本solr-7.1.0
-环境 Windows jdk1.8
-框架 SSM
-启动方式:部署在apache-tomcat-8.5.23,以下简称Tomcat
1. 将solr-7.1.0\server\solr-webapp下的webapp复制到Tomcat\webapps下,并改名solr;
2. 将solr-7.1.0\server\lib下的ext下的所有jar包复制到Tomcat\webapps\solr\WEB-INF\lib下,以及
solr-7.1.0\server\lib下以metrics开头的jar、gmetric4j-1.0.7.jar复制到Tomcat\webapps\solr\WEB-INF\lib下;
3. 在Tomcat\webapps\solr\WEB-INF下创建classes文件夹,并把solr-7.1.0\example\resources下的log4.perportiy复制到 classes文件下;
4. 修改修改Tomcat\bin下的catalina.bat,增加solr.log.dir系统变量,指定solr日志记录存放地址。
if not "%JSSE_OPTS%" == "" goto gotJsseOpts
set JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
:gotJsseOpts
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" --增加下一行
set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.log.dir=D:\Solr-7\solr_home\logs"
5. 在任意地方创建文件夹solr_home,把solr-7.1.0\server下solr复制到这个solr_home下,在这里,我创建在Solr-7.1.0的同级目录下了,并且修改配置文件Tomcat\webapps\solr\WEB-INF\web.xml,将下面配置的注释放开,黑体部分更改为你的solr-home地址。
solr/home
D:\Solr-7\solr_home
java.lang.String
并注释下面部分:
6. 配合solr日志记录存放地址,在solr-home下新建logs文件夹;
7. 拷贝solr-7.1.0下contrib和dist文件夹至solr-home目录下。
8. 在solr-home目录下新建new_core文件夹;并拷贝solr-7.1.0\server\solr\configsets_default\目录下conf文件夹至solr-home\new_core下。
9. 修改solr-home\new_core\conf\solrconfig.xml文件,如下
10. 启动Tomcat,访问http://localhost:8080/solr/index.html
11. 配置Ik分词器,首先导入ik的jar ik-analyzer-solr5-5.x 和 solr-analyzer-ik-5.1.0 两个jar包
导入Tomcat\webapps\solr\WEB-INF\lib下
然后配置solr_home\new_core\conf下的managed-schema文件加入
--此处为创建索引分词
-- 此处为查询分词索引
到此IK分词设置完成。
12. Solr与Spring整合
创建spring-context-solr.xml
xmlns:cOntext="http://www.springframework.org/schema/context" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"
default-lazy-init="true">
13. 创建测试类
SorlJTest
@ContextConfiguration(locatiOns= { "classpath*:/spring-context*.xml" })
public class SolrJTest extends AbstractTransactionalJUnit4SpringContextTests {
private static final Log log = LogFactory.getLog(SolrJTest.class);
@Autowired
private HttpSolrClient client;
@Test
public void test() throws IOException, SolrServerException {
SolrQuery solr = new SolrQuery();
solr.setQuery("productName:苹果");
QueryResponse queryRespOnse=client.query(solr);
//拿到数据集合,返回查询结果
List list =queryResponse.getResults();
System.out.println(list);
}
}
14.有关IK分词,
粗细力度查询
上面11中
useSmart="false" 为智能分词 false 关闭状态 默认最细力度分词
useSmart="true" 为智能分词 true 开启状态 默认最粗力度分词
智能分词的开关,根据自身业务的需求来进行设置,此处设置粗粒度查询 匹配度最高在第一位
15.
配置文件-自动导入数据库数据
在
solr_home\new_core\conf下新建data-config.xml文件
type="JdbcDataSource"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.12.168:1521:XXXX"
user="XXXXXX"
password="XXXXXXX"/>
query="select
NMSKY,
NMSKY,
USER_ID,
USERNAM,
USERRAT
from XXXXXX"
deltaQuery="select USER_ID as USERID from XXXXXX where to_char(TIME,'YYYY-MM-DD HH24:MI:SS') > '${dih.last_index_time}'"
deltaImportQuery="select NMSKY,NMSKY,USER_ID,USERNAM,USERRAT from XXXXXX where USER_ID='${dih.delta.USERID}'">
基本的配置就是这样了,如果有不对的地方请指教!