我正在使用apache solr-6.0.0
我有一个集合:my-search
每当我运行delta-import时,dataimport.properties文件中的last_index_time都会更新。
有没有办法使用api调用获取此值?如果是,如何使用solrj库读取该值?
使用以下api我能够读取文件的内容:
http://localhost:8983/solr/my-search/admin/file?wt=json&file=dataimport.properties
回复如下:
#Thu Mar 23 10:00:01 UTC 2017
name.last_index_time=2017-03-23 10\:00\:01
last_index_time=2017-03-23 10\:00\:01
使用solrj java库,我正在做以下事情:
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/admin/file");
params.set("file", "dataimport.properties");
params.set("contentType", "text/plain;charset=utf-8");
try
{
return this.solr.query(collectionName, params);
}
catch (Exception e)
{
logger.info("Exception msg: " + e.getMessage());
}
但我收到错误说:
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/cdi-search: Expected mime type application/octet-stream but got text/plain. #Thu Mar 23 10:00:01 UTC 2017
name.last_index_time=2017-03-23 10\:00\:01
last_index_time=2017-03-23 10\:00\:01
我将contentType更改为application / octet-stream。但现在错误是:
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/cdi-search: Invalid version (expected 2, but 35) or the data in not in 'javabin' format
答案 0 :(得分:0)
SolrJ is an API可以轻松添加,更新和查询Solr集合。换句话说索引文档并搜索它们。
不包括您正在谈论的功能。
您只需提交HTTP请求,下载资源,阅读并解析即可。我建议阅读这篇Java教程" Reading directly from a URL"。
URL oracle = new URL("http://localhost:8983/solr/admin/zookeeper?detail=true&path=%2Fconfigs%2Fmy-search%2Fdataimport.properties");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();