Solr 踩过的坑

简介: 1.solrj查询出的SolrDocument转成SolrInputDocument后不能删除字段,无奈只能new一个SolrInputDocument,然后将原来的key-value拷贝到新new的对象上。

1.solrj查询出的SolrDocument转成SolrInputDocument后不能删除字段,无奈只能new一个SolrInputDocument,然后将原来的key-value拷贝到新new的对象上。
2.cloud模式下solrj不能下载zk的配置文件,ZkController.downloadConfigDir总是报No Node for xxx 这样的错。在tomcat启动的时候指定要上传到zk的本地文件夹位置。
3.cloud模式下solrj不能上传配置文件,ZkController.uploadConfigDir不报错,就是不能上传成功,未找到原因和解决办法。
4.*_t字段加一个不分词的copy字段。

<dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true" multiValued="true"/>
<!--声明*_t_facet字段的类型为notanalyze(不分词)-->
<dynamicField name="*_t_facet"  type="notanalyze"    indexed="true"  stored="true" multiValued="true"/>
<!--将*_t字段拷贝到*_t_facet字段上,注意拷贝动作是在*_t字段分词前拷贝的,而且是solr自动完成的,所以*_t_facet是不分词的,而且我们也不应该手动维护*_t_facet字段-->
<copyField source="*_t" dest="*_t_facet"/>
<!--注意-->
<fieldType name="notanalyze" class="solr.StrField" sortMissingLast="true" />

5.加了*_t_facet字段后,以后修改solr文档时*_t_facet以前的值会不断增加(旧值还在),就算把*_t的字段删除,*_t_facet的字段也会继续存在。没办法,每次更新文档的时候只能一把更新整个文档,更新整个文档的时候还得把*_t_facet和_version_字段删除。SolrInputDocument不给删除字段怎么办?看上面第1个坑。
6.一开始没注意,后来才发现如果某个字段是分词的字段,那么facet这个字段的结果就是分词后的结果。一般情况下,要facet的字段需要配置成不分词的。这个容易,给源字段加一个copy字段好了。那动态字段怎么加不分词的copy字段呢?看上面第4个坑。
举个栗子:
假如有两个文档,name_t和email_t是分词的。email_t_facet是不分词的。注意email_t_facet是自动生成的。
这里写图片描述

这里写图片描述

email_t也是分词的。facet是分词后的结果,太散了
这里写图片描述

email_t_facet是不分词的。facet的结果是我们想要的
这里写图片描述

7.schema.xml中文档的id不能配置成分词的,否则会出现文档重复的问题。

<!--id字段默认的type是string,但是我们经常把string和text都配置成了smartcn或者ik什么的,分词器配置在string上时别忘了把id的类型改掉-->
<field name="id" type="notanalyze" indexed="true" stored="true" required="true" multiValued="false" /> 
目录
相关文章
|
安全 Java 中间件
idea部署tomcat(偏小白向)
idea部署tomcat(偏小白向)
78 0
|
消息中间件 运维 监控
盘点一下我用kafka两年以来踩过的一些非比寻常的坑
我的上家公司是做餐饮系统的,每天中午和晚上用餐高峰期,系统的并发量不容小觑。为了保险起见,公司规定各部门都要在吃饭的时间轮流值班,防止出现线上问题时能够及时处理。
|
JSON 监控 搜索推荐
【技术选型】Elasticsearch 和Solr那个香?
【技术选型】Elasticsearch 和Solr那个香?
|
XML 存储 JSON
Solr学习总结
Solr学习总结
152 0
Solr学习总结
|
消息中间件 运维 监控
我用kafka两年踩过的一些非比寻常的坑
我用kafka两年踩过的一些非比寻常的坑
我用kafka两年踩过的一些非比寻常的坑
|
存储 SQL 缓存
使用phoenix踩的坑与设计思考
使用phoenix踩的坑与设计思考
401 0
使用phoenix踩的坑与设计思考
|
监控 Java 分布式数据库
HBase踩过的坑——持续更新
1.HBase数据热点问题    问题描述:   在某一个时刻,电池数据表的以某些规则开头的数据,比如M12******,这些电池一直在上报数据,由于HBase的存储是按照字典顺序排序的,所有某一时刻,相似规则的数据落在了同一个region上,造成了数据热点。
3046 0
|
分布式计算 Java Hadoop
一脸懵逼学习HBase的搭建(注意HBase的版本)
1:Hdfs分布式文件系统存的文件,文件存储。 2:Hbase是存储的数据,海量数据存储,作用是缓存的数据,将缓存的数据满后写入到Hdfs中。 3:hbase集群中的角色:   (1)、一个或者多个主节点,Hmaster;   (2)、多个从节点,HregionServer;  1...
1414 0