mac安装Solr
Linux 2023/9/14 21:59:13 点击:不统计
原文是网站制作学习网的FoAsP.cn
原文是网站制作学习网的FoAsP.cn
一 mac安装Solr,直接用brew 安装即可,如果没有java环境brew会自动安装
brew install solr
安装完毕后
solr 软件位置: /usr/local/Cellar/solr/8.11.2
日志位置 /usr/local/var/log/solr
索引仓库配置文件位置:/usr/local/var/lib/solr/
solr启动命令:solr start
solr停止命令:solr stop
solr重启命令:solr restart
mac 配置solr过程如下:
二 在启动之前先创建一个测试库,因为如果在界面操作创建库会提示配置文件不存在,所以创建搜索库都是在命令行。
solr create_core -c test # 创建搜索索引库,名称为test
#创建完毕后默认文件测试库夹为:
/usr/local/var/lib/solr/test
三 下载 中文分词库,需要根据solr 找到对应版本
https://search.maven.org/ 搜索ik-analyzer 找到 IK-Analyzer for 7-8 就适配 solr 8.11.2
下载地址
https://repo1.maven.org/maven2/com/github/magese/ik-analyzer/8.5.0/ik-analyzer-8.5.0.jar
放到 server/solr-webapp/webapp/WEB-INF/lib
四 索引库添加 搜索字段,并确定字段所属那个类型
到test 仓库位置:/usr/local/var/lib/solr/test 最后的test 就是上面创建仓库的名称,可以看到
conf #文件夹 test 索引库的配置文件夹
core.properties #文件索引库名称文件
data # 索引库存放数据
进 conf, 编辑 managed-schema, 用来定义 存储字段名称 将下面代码添加到 尾部 </schema> 结束之前,下面注释可以删除
=============代码开始=============
=============代码开始=============
<!--定义搜索字段 zhongwen_all 类型text_ik indexed 设定为索引为true, 是否保存stored 为保存 multiValued 是否为多个字段,比如数组类默认否 -->
<field name="chinese_all" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<!--下面的定义字段与上面不同的是 type 为text_ik_smart,详细区别见下面-->
<field name="chinese_smart" type="text_ik_smart" indexed="true" stored="true" multiValued="false"/>
<!--字段type 类型定义,这里定义text_ik ,索引和查询都是用IK分词-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!--字段type 类型定义,这里定义text_ik ,索引和查询都不分词,是全匹配搜索类似于mysql like,更严谨。定义useSmart =true -->
<fieldType name="text_ik_smart" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
==============代码结束==============
==============代码结束==============
五 启动solr
启动solr
solr start
启动后有如下提示 表示启动成功了。
> solr start
Started Solr server on port 8983 (pid=5952). Happy searching!
如果有warning 忽略,然后访问 http://localhost:8983/
就可以看到solr 的管理界面了
六,测试手动分词查询, 在主界面添加一个词,分词测试一下
分词 chinese_all 测试如下

分词 chinese_smart 测试如下:


七:开始通过import 导入数据操作。
复制 data-import* jar 操作文件到web lib 目录,在solr 的安装包中
> cd /usr/local/Cellar/solr/8.11.2/dist
> cp solr-dataimporthandler-* /usr/local/Cellar/solr/8.11.2/server/solr-webapp/webapp/WEB-INF/lib
八:根据作为源数据库版本,下载对应java-mysql-connector.jar 版本
https://mvnrepository.com/artifact/mysql/mysql-connector-java
查看自己mysql version:
直接运行:
> mysql --version
>mysql Ver 8.0.30 for macos12.6 on x86_64 (Homebrew)
或者登录mysql 后
>select version()
九 然后在 /usr/local/var/lib/solr/test/conf/solrconfig.xml 末尾</config>前面添加
这个是添加要improt 对应的配置类名词以及,加载数据库配置文件名称, 切记name 是小写 dataimport
============开始代码=============
============开始代码=============
<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(上面配置指定的)放到 /usr/local/var/lib/solr/test/conf/,如果复制下面代码,去掉注释
==============开始代码 注意去掉注释=========================
<?xml version="1.0" encoding="utf-8"?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver" 这个是对应mysql 版本的,
url="jdbc:mysql://localhost:3306/databasename"
user="root"
password="password" />
<document>
<entity name="searcheindexname" query="select id,title from book where is_del=0">
<field column="id" name="id"/> id 是默认有的
<field column="title" name="chinese_all"/> #这里的column 是我们源数据库字段
# name 是 搜索索引字段field字段名称,可以自定义,但与上面定义的名称要一致
</entity>
</document>
</dataConfig>
==============结束代码========================
==============结束代码========================
十一,重启solr 然后界面操作 Dataimport
提交数据如下图

提交数据完毕

搜索数据:

原载于:文章来源:www.forasp.cn网站制作学习