【问题标题】:Parsing Json feed from Solr从 Solr 解析 Json 提要
【发布时间】:2013-05-14 00:07:21
【问题描述】:

我在解析来自 Solr 的提要时遇到了奇怪的行为。我没有使用 url1 得到任何响应。但是如果我使用 url2 代替,我会得到,在这两种情况下,我都会收到将 url 直接放入浏览器的响应。请问,我做错了什么?

<script type='text/javascript'>
  var searchterms = $('#input_box').val();
  var searchfield = $('#dropdown').val();

  var url1 ="http://localhost:8983/solr/moogle/select?q="+searchfield+"%3A%28"+searchterms+"%29&wt=json&indent=true";
  var url2 = 'http://localhost:8983/solr/moogle/select/?wt=json&json.wrf=?&q='+searchfield+':('+searchterms+')'

  $.getJSON(url1, function(result){
     alert("hello"+result.response.docs[0].title);
 });
</script>

【问题讨论】:

    标签: jquery json rest solr getjson


    【解决方案1】:

    我找到了解决方案。这是与在网页的不同端口上运行 Solr 相关的浏览器跨域脚本问题。 我通过在 URL 中包含 json.wrf=? 参数解决了这个问题:

    "http://localhost:8983/solr/moogle/select?q="+searchfield+"%3A%28"+searchterms
    +"%29&wt=json&indent=true&json.wrf=?"
    

    【讨论】:

      【解决方案2】:

      达米安,

      Solr 中没有“无响应”。 它以数据、错误代码或完整的异常描述来响应。

      不要检查“result.response.docs[0].title”,而是尝试“result.responseHeader.status”或响应标头中的其他值,以将您指向错误。

      从浏览器运行查询当然与从代码运行查询有点不同。

      还要检查非常有用的 Solr 日志。如果使用 Apache,您可以在 Apache 服务器日志目录中找到它,每个查询和响应都有一条记录。

      【讨论】:

        猜你喜欢
        • 2015-10-23
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多