有没有办法获取Solr的版本和JVM属性,例如Solr主目录,而不必解析HTML?
点击此网址,http://localhost:8983/solr/#/会显示所需的值:
并且可以从返回的HTML中解析所需的值:
xml
<li class="solr solr_spec_version odd" style="display: list-item;">
<dl class="clearfix">
<dt><span>solr-spec</span></dt>
<dd>5.0.0</dd>
</dl></li>
是否有更直接的方法来获取这些值而无需解析HTML?
答案 0 :(得分:1)
此信息是通过http://localhost:8983/solr/admin/info/system的ajax加载的,它以XML或JSON格式返回此信息,例如:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">1</int>
</lst>
<str name="mode">std</str>
<str name="solr_home">D:\solr\solr-5.0.0\solr-5.0.0\server\solr\</str>
<lst name="lucene">
<str name="solr-spec-version">5.0.0</str>
<str name="solr-impl-version">5.0.0 1659987 - anshumgupta - 2015-02-15 12:26:10</str>
<str name="lucene-spec-version">5.0.0</str>
<str name="lucene-impl-version">5.0.0 1659987 - anshumgupta - 2015-02-15 12:20:03</str>
</lst>
...
这些值由JavaScript文件app.js加载(server \ solr-webapp \ webapp \ _js \ scripts \ app.js)
var system_url = config.solr_path + '/admin/info/system?wt=json';
它通过index.js(server \ solr-webapp \ webapp \ _js \ scripts \ index.js)在输出中呈现:
var data = {
'start_time' : app.dashboard_values['jvm']['jmx']['startTime'],
'jvm_version' : app.dashboard_values['jvm']['name'] + ' (' + app.dashboard_values['jvm']['version'] + ')',
'processors' : app.dashboard_values['jvm']['processors'],
'solr_spec_version' : app.dashboard_values['lucene']['solr-spec-version'] || '-',
'solr_impl_version' : app.dashboard_values['lucene']['solr-impl-version'] || '-',
'lucene_spec_version' : app.dashboard_values['lucene']['lucene-spec-version'] || '-',
'lucene_impl_version' : app.dashboard_values['lucene']['lucene-impl-version'] || '-'
};
for( var key in data )
{
var value_element = $( '.' + key + ' dd', this );
value_element
.text( data[key].esc() );
value_element.closest( 'li' )
.show();
}