solr7
安装
我选了7.4.0最新的,
网上还有很多人用5或者6的,因为分词不支持什么的,其实是支持的,都有了。
另外不同版本确实安装步骤不是完全一样。
- 下载和配置 tomcat和jdk
略 - 配置
1、解压 solr-7.4.0.tgz 换个名字叫solr7
2、将server/solr-webapp/webapp 重新命名solr,并复制到tomcat/webapps下面
3、tomcat/webapps/solr/WEB-INF 下建立一个文件夹 classes
4、新建一个文件夹,不要中文目录,用来做solrHome,也就是solrCore的实例存放位置,我就建在solr7下面
mkdir solr_home
5、tomcat/webapp/solr/WEB-INF/web.xml 配置solr/home 吧注释去掉,然后路径改掉
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/api/solr7/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
6、 复制server/resource/log4j.properties 到刚刚建立的classes 文件夹
其实是log4j2.xml
7、把solr7/server/lib/ext/ 下的jar包复制到tomcat/webbapps/solr/WEB-INF/lib/中
8、把solr7/dist下面的jar包也复制过去
9、solr7/server/lib下面的metrics开头的也复制过去
10、将 /webapps/solr/WEB-INF 下面的 web.xml 最尾巴上的
好了,启动tomcat ,(别忘了可能要改端口)
浏览器打开 http://127.0.0.1:8080/solr/admin.html
如果没权限,是security-constraint 没有删的原因
点击【core admin 】
添加一个core ,我就默认new_core
在solr7/solr_home 下新建 new_core (solr自己建的,不需要自己mkdir)
会报找不到solrconfig.xml ,下一步帮你找到
11、把solr7/server/solr/configsets/sample_techproducts_configs/conf/ 复制到 solr7/solr_home/new_core
(solr_home下面也有configsets,复制带过来的)
好了,现在回报找不到elevate.xml
这个文件在new_core里面,放到conf或者data里面(conf并没有,就放data下)
12、solr7/server/solr/solr.xml 复制到solr7/solr_home下
【重启】tomcat
应该没有报错了
分词
下载https://github.com/magese/ik-analyzer-solr7
自己maven打包 成 ik-analyzer-solr7-7.x.jar
tomcat/webapp/solr/WEB-INF/lib里面。
(千万不要复制到tomcat/lib中,这样会找不到lucene的类)
添加 vi solr7/solr_home/new_core/core1/conf/managed-schema 尾巴上
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
<analyzer type="query" useSmart="true"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
页面咋操作,见https://www.cnblogs.com/zhuxiaojie/p/5764680.html 我就不贴图了
域的定义 field
具体使用和语法,看其他blog,这边不再复制一遍
但是我困惑了很久,到底是个啥东西,title就可以,title1就不行,我也没配过,
后来发现managed-schema (老版本schema.xml) 预设了很多字段
id,name,context。。。。。很多
title1 不行,是因配置文件里面没有,-_-||
dataimport 数据库
mysql-connector-java-5.1.42.jar 放到
/usr/local/api/tomcat8-10080-solr/webapps/solr/WEB-INF/lib
还有solr/dist/ 下面的solr-dataimporthandler-7.4.0.jar 也放过去
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
<dataConfig>
<!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr/useUnicode=true&characterEncoding=utf-8" user="bbtang" password="bbtang"/>
<document>
<!-- name属性,就代表着一个文档,可以随便命名 -->
<!-- query是一条sql,代表在数据库查找出来的数据 -->
<entity name="product" query="select * from products">
<!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在
**managed-schema**文件中配置过的域才行) -->
<field column="pid" name="id"/>
<field column="name" name="product_name"/>
<field column="catalog" name="product_catalog"/>
<field column="catalog_name" name="product_catalog_name"/>
<field column="price" name="product_price"/>
<field column="description" name="product_description"/>
<field column="picture" name="product_picture"/>
</entity>
</document>
</dataConfig>
ps: xml里面 &要写成 &