使用jquery调用从SOLR中检索结果

我正在努力使用jquery从SOLR获得响应。 当我使用下面的代码时,我收到错误说Typeerror:data为null

查看firebug中的代码时, on_data函数中的数据为null。 我想我在Solr URL中遗漏了一些东西。我使用的URL是http://xxxx.xxx.xxxx.xxx/xxx_xxx/core0/selectcore0/select/?q=%3A&version = 2.2&start = 0&rows = 10&indent = ON&重量= JSON。 您能否看一下我的代码,并建议代码中的URL样式

  Solr Search   

Solr Search

Query:
function on_data(data) { $('#results').empty(); var docs = data.response.docs; $.each(docs, function(i, item) { $('#results').prepend($('
' + item.name + '
')); }); var total = 'Found ' + docs.length + ' results'; $('#results').prepend('
' + total + '
'); } function on_search() { var query = $('#query').val(); if (query.length == 0) { return; } var url='http://xxxx.xxx.xxxx.xxx/xxx_xxx/core0/selectcore0/select/?q='+query+'&version=2.2&start=0&rows=50&indent=on&wt=json'; $.getJSON(url, on_data); } function on_ready() { $('#search').click(on_search); /* Hook enter to search */ $('body').keypress(function(e) { if (e.keyCode == '13') { on_search(); } }); } $(document).ready(on_ready);

以下是代码的工作版本和更改列表: 1)添加了wrf:在JSON响应周围添加了一个包装器函数,在AJAX中用于指定JavaScript回调函数的动态脚本标记2)添加了回调:需要使用由于JavaScript的跨域安全限制,JSONP而不是普通的JSON请求。

   Solr Search   

Solr Search

Query:

由于您使用的是$ .getJSON,因此可能需要在查询中添加&wt = json

所以你的查询应该是: http : //xxxx.xxx.xxxx.xxx/xxx_xxx/core0/selectcore0/select/?q=search_query&version=2.2&start=0&rows=10&indent=on&wt=json

默认情况下,Solr提供XML响应。 您需要通过添加&wt = json来指定是否需要JSON响应

模式细节: http : //wiki.apache.org/solr/SolJSON

我已经在函数on_data中安装了solr 5.2.1:item.name了。 我使用了item.id并且它有效。