标签归档:solr
solr: Could not start JMX monitoring
删除core重来!
logs/solr.log:Caused by: java.io.IOException: Cannot bind to URL [rmi://noq5ay.s0x.cn/aa]: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
疑似被攻击
被入侵后会多个.json文件 清理下不知道会好不,我这边是直接备份下配置文件删除core重来
solr init note
cd /usr/local/src/solr-8.5.2/ \
&& ./bin/solr stop -all \
&& rm -f /etc/default/solr.in.sh \
&& rm -f /etc/init.d/solr \
&& rm -rf /usr/local/solr \
&& mkdir /usr/local/solr \
&& rm -rf /mnt/solr \
&& mkdir /mnt/solr \
&& chown solr:solr -R /mnt/solr \
&& chmod 775 /mnt/solr \
&& ./bin/install_solr_service.sh /usr/local/src/solr-8.5.2.zip -d /mnt/solr -i /usr/local/solr -f -s solr -n
Solr ik分词器集成
https://github.com/magese/ik-analyzer-solr
单机版Solr
-
将jar包放入Solr服务的
Jetty
或Tomcat
的webapp/WEB-INF/lib/
目录下; -
将
resources
目录下的5个配置文件放入solr服务的Jetty
或Tomcat
的webapp/WEB-INF/classes/
目录下;① IKAnalyzer.cfg.xml ② ext.dic ③ stopword.dic ④ ik.conf ⑤ dynamicdic.txt
-
配置Solr的
managed-schema
,添加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="true" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
-
启动Solr服务测试分词;
-
IKAnalyzer.cfg.xml
配置文件说明:名称 类型 描述 默认 use_main_dict boolean 是否使用默认主词典 true ext_dict String 扩展词典文件名称,多个用分号隔开 ext.dic; ext_stopwords String 停用词典文件名称,多个用分号隔开 stopword.dic; -
ik.conf
文件说明:files=dynamicdic.txt lastupdate=0
files
为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt
;lastupdate
默认值为0
,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。lastupdate
采用的是int
类型,不支持时间戳,如果使用时间戳的朋友可以把源码中的int
改成long
即可;2018-08-23
已将源码中lastUpdate
改为long
类型,现可以用时间戳了。
-
dynamicdic.txt
为动态词典在此文件配置的词语不需重启服务即可加载进内存中。 以
#
开头的词语视为注释,将不会加载到内存中。
Apache Solr Java版本要求
Apache Solr在Java 8或更高版本上运行。
建议装Java 8 否则可能有bug
solr 不支持最新版的java 14
搞得有莫名其妙的bug
org.apache.solr.common.SolrException: Exception writing document id 663b167f2d661568 to the index; possible analysis error: cannot change DocValues type from SORTED_SET to NUMERIC for field “is_original”
org.apache.solr.common.SolrException: Exception writing document id 663b167f2d661568 to the index; possible analysis error: cannot change DocValues type from SORTED_SET to NUMERIC for field "is_original"
我这里修改tints类型为tint类型,导致新数据无法写入,字段删除完毕了,也reload了没有,只要清理的数据才行
<delete><query>*:*</query></delete> <commit/>
solr删除web控制台删除记录
删除满足条件的记录
<delete><query>id:1</query></delete>
<commit/>
solr内存配置,solr时区配置
配置文件位置:/etc/default/solr.in.sh
配置内存
SOLR_JAVA_MEM=”-Xms1g -Xmx6g”
这两个配置分别为最小内存和最大内存
配置時區
SOLR_TIMEZONE=”Asia/Shanghai”
其他配置
SOLR_PID_DIR=”/mnt/www/solr”
SOLR_HOME=”/mnt/www/solr/data”
LOG4J_PROPS=”/mnt/www/solr/log4j.properties”
SOLR_LOGS_DIR=”/mnt/www/solr/logs”
SOLR_PORT=”8983″