问题原因:
首先这个问题是因为要使用solr服务器,我为了方便,使用了之前搭建的一个solr服务器,所以就没有重新进行搭建,于是就出现了问题
1.我的代码
@Test
public void testAdd() {
TbItem item = new TbItem();
item.setId(1L);
item.setTitle("华为P30Pro");
item.setCategory("手机");
item.setBrand("华为");
item.setSeller("华为旗舰店");
item.setPrice(new BigDecimal(3000));
solrTemplate.saveBean(item);
solrTemplate.commit();
}
2.问题报错
如后面的问题堆栈所示
3.定位问题
当我把代码改成下面这样时,我发现这个测试方法可以运行成功,所以,我排除了代码的错误,从配置来入手
@Test
public void testAdd() {
TbItem item = new TbItem();
item.setId(1L);
item.setTitle("华为P30Pro");
solrTemplate.saveBean(item);
solrTemplate.commit();
}
4.寻找问题
我去检查了pojo类,是否全部添加了field的注解,没有问题,很疑惑,然后去网上查,在solr中查询出来的只有两个字段:id和title
所以我发现了问题应该是出现在了配置上,于是我以为把solr中所有的记录删掉,重新添加就可以,但是我没成功。
5.解决问题
我觉得可能是哪里有配置文件,想到之前进行过配置域,所以我猜是这里出现了问题,我去solr服务器中找到solr的schema.xml文件,进行字段更新之后,问题果然解决掉了
总结
一定要培养问题的解决能力,前期的我们解决问题没有那么强,所以需要多见识,吴军的新书见识正切实的说明了这一点,遇到问题,不要着急。我写了这么多,我只想分享给大家我是如何来分析这个问题和解决这个问题的,问题的解决方法多的是,但是你怎么想又是另一回事,如何才能做到高效率的解决问题,答案只有一个,见多识广,还有just do it。
另外不要见到问题就去问别人,也不要直接去听别人的知识体系,自己有过学习之后再去学习,这样的收获远比你直接去被灌输大得多。