这次solr异常说起来很有意思,原因找到了,但是现象很让人费解,先声明一下环境
JDK1.8
solr7.7.2
solrj7.7.2
solr没用tocmat,直接在自己本机(windows)上用solr自带的jetty启动的,配置文件经检查无误,测试javaAPI添加索引,代码如下
@Test
public void addDocument() throws Exception{
Builder builder = new Builder("http://localhost:8983/solr/test_core");
// 1 创建一个SolrServer对象,参数为solr的服务地址
HttpSolrClient solrClient = builder.build();
System.out.println("solrClient创建成功");
// 2 创建一个文档对象SolrInputDocument对象
SolrInputDocument document = new SolrInputDocument();
System.out.println("document创建成功");
// 3 向文档中添加域,文档中必须包含一个ID域,所有的域名必须在Schema.xml中定义
document.addField("id", "test001");
document.addField("item_title", "测试商品");
document.addField("item_price", "199");
// 4 把文档写入索引库
UpdateResponse response = solrClient.add(document);
System.out.println("response创建成功");
System.out.println(response.getElapsedTime());
// 5 提交
solrClient.commit();
}
逻辑没啥问题(注:solr6.5以后都不在直接使用HttpSolrClient构造函数,改用Builder方法),但是在solr管理页面上却不显示我创建的索引,说白了就是索引没加上,但是特么的也没报错啊,这特么就很令人费解了,经过各种百度吧,最后发现罪魁祸首在httpClient上。
就是版本太低了。至于换哪个版本,大家可以参考solr下载包给出的版本