ubuntu下solr安装:
打开下载链接:https://solr.apache.org/downloads.html,我是通过二进制安装的,直接可以执行bin文件
使用:https://www.fanhaobai.com/2017/08/solr-search.html
solr的php客户端:https://github.com/solariumphp/solarium
symfony框架下对上面客户端的封装使用:https://github.com/nelmio/NelmioSolariumBundle
启动:
sudo ./bin/solr start -p 8983 -force //注意可能会报 java not found,那是因为 sudo 操作下的 环境变量[不是在 /etc/progile下]的问题,需要去sudo vim /etc/sudoers 下添加java的bin环境变量,加- force的原因是,solr 不希望使用root权限启动,但是可以通过force强制执行
重启:
sudo ./bin/solr restart -p 8983 -force
相关命令参考:
solr start -p p_num 启动solr
solr restart -p p_num 重启solr
solr stop -p p_num 关闭solr
solr create -c c_name 创建一个核心
出现下面的提示,即为ok了:
*** [WARN] *** Your open file limit is currently 1024.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Java 17 detected. Enabled workaround for SOLR-16463
Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require
RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'.
Waiting up to 180 seconds to see Solr running on port 8983 [|]
Started Solr server on port 8983 (pid=50992). Happy searching!
报错:
Your open file limit is currently 1024.
It should be set to 65000 to avoid operational disruption
解决办法:
打开/etc/systemd/system.conf,添加如下内容:
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
重新启动:
sudo systemctl daemon-reload
检查设置是否生效:
~ # systemctl show | egrep "NOFILE|NPROC"
DefaultLimitNOFILE=65000
DefaultLimitNOFILESoft=65000
DefaultLimitNPROC=65000
DefaultLimitNPROCSoft=65000
然而还是可能报上面的问题,但是不影响使用,只是一个警告
访问:http://localhost:8983/solr 即可打开页面
创建core:
进入到 /usr/local/solr-9.3.0/server/solr 创建core相关文件夹,比如我建立一个叫 paper_core的文件夹,然后进入这个文件夹,然后在这个文件夹下创建solrconfig.xml和schema.xml文件。这两个文件有了,就可以重新访问8983这个客户端链接,添加 名称为paper_core的core.
solrconfig.xml配置[使用其中的一部分]
其中比较重要的:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar"/> //安装的更目录下有个dist文件夹
<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib/" regex="mysql-connector-java-\d.*\.jar"/> //安装的更目录下有个contrib/dataimporthandler,需要手动创建一个lib,然后将mysql-connector-j-8.0.33.jar包放进去,此时mysql-connector-j和mysql-connector-java不匹配,所以要改一下,改成:mysql-connector-j-\d.*\.jar即可
https://blog.csdn.net/csdn_fan321/article/details/103110399
schema.xml配置[gpt生成]
官方使用文档:
https://solr.apache.org/guide/solr/latest/indexing-guide/indexing-with-update-handlers.html
旧版本:https://archive.apache.org/dist/lucene/solr/ //8.6之后废弃了dataimporthandler,所以,我重新安装了8.5,
导入数据:
https://learnku.com/articles/50702
报错:Could not load driver: com.mysql.jdbc.Driver Processing Document
需要配置jdbc的jar包,需要去 https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/ 下载[我的msyql是8.0版本下的8.0.34,目前只能下载8.0.33]
然后修改solrconfig.xml中的配置:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar"/> //安装的更目录下有个dist文件夹
<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib/" regex="mysql-connector-java-\d.*\.jar"/> //安装的更目录下有个contrib/dataimporthandler,需要手动创建一个lib,然后将mysql-connector-j-8.0.33.jar包放进去,此时mysql-connector-j和mysql-connector-java不匹配,所以要改一下,改成:mysql-connector-j-\d.*\.jar即可
https://www.cnblogs.com/shoufeng/p/9801490.html
最后倒入成功了,但是报:Could not write property file. Delta imports will not work. Make sure your conf directory is writable,只需要在 定义的core目录下新建一个conf目录就可以了,记得给读写权限,看了这个文件夹,里面存储的是每次导入的时间节点,相当于一个版本控制吧
