一、Java Script

1、由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择。

2、在之前,主要使用SolJS作为solr的客户端,目前主要使用ajax-solr,信息请见:https://github.com/evolvingweb/ajax-solr/wiki/Reuters-tutorial%3A-step-1。

3、以下示例未使用上述所述的客户端,而是使用了ajax的基本功能,完成了搜索结果的呈现。

  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Search Result</title>
  5. <script type="text/javascript">
  6. var xmlhttp;
  7. var responseJson;
  8. function loadXMLDoc(url) {
  9. xmlhttp = null;
  10. if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
  11. xmlhttp = new XMLHttpRequest();
  12. } else if (window.ActiveXObject) {// code for IE6, IE5
  13. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  14. }
  15. if (xmlhttp != null) {
  16. xmlhttp.onreadystatechange = state_Change;
  17. xmlhttp.open("GET", url, true);
  18. xmlhttp.send(null);
  19. } else {
  20. alert("Your browser does not support XMLHTTP.");
  21. }
  22. }
  23.  
  24. function state_Change() {
  25. if (xmlhttp.readyState == 4) {// 4 = "loaded"
  26. if (xmlhttp.status == 200) {// 200 = "OK"
  27.  
  28. //将responseText转化为Json类型的变量,才能通过点号读取数据。
  29. responseJson = eval("(" + xmlhttp.responseText + ")");
  30. for (var i = 0; i < responseJson.response.docs.length; i++) {
  31. document.write("title:"
  32. + responseJson.response.docs[i].title + "<br>");
  33. document.write("time:"
  34. + responseJson.response.docs[i].tstamp + "<br>");
  35. document.write("content:"
  36. + responseJson.response.docs[i].content.substring(
  37. 20, 100) + "<br><br><br>");
  38.  
  39. }
  40. } else {
  41. alert("Problem retrieving data:" + xmlhttp.statusText);
  42. }
  43. }
  44. }
  45. </script>
  46. </head>
  47.  
  48. <body onload="loadXMLDoc('/solr/collection1/query?q=*:*')">
  49.  
  50. </body>
  51.  
  52. </html>

【solr基础教程之九】客户端的更多相关文章

  1. 【solr基础教程之九】客户端 分类: H4_SOLR/LUCENCE 2014-07-30 15:28 904人阅读 评论(0) 收藏

    一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...

  2. 【solr基础教程之九】client

    一.Java Script 1.因为Solr本身能够返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solrclient是一个非常好的 ...

  3. 【solr基础教程之一】Solr相关知识点串讲

           Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API,但它只作为一个API库存在,而不能直接用于搜索.因此,Solr基于Lucene构建了一个完 ...

  4. 【solr基础教程之中的一个】Solr相关知识点串讲

           Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API.但它仅仅作为一个API库存在.而不能直接用于搜索. 因此,Solr基于Lucene构建了一 ...

  5. 【solr基础教程之二】索引

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...

  6. 【solr基础教程之二】索引 分类: H4_SOLR/LUCENCE 2014-07-18 21:06 3331人阅读 评论(0) 收藏

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...

  7. python基础教程(九)

    python异常 python用异常对象(exception object)来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误 ...

  8. 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)

    1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...

  9. SpringCloud2.0 Turbine 断路器集群监控 基础教程(九)

    1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...

随机推荐

  1. js中数组的检测方法

    在js中可以使用Object.prototype.toString.call()的来检测一个对象是否为一个数组 //检测数组 var a = [1, 2]; console.log(typeof a) ...

  2. $.unique() 对象组成的数组去掉重复对象

    发现一件事,一个完全由对象组成的数组,用$.unique()方法去掉重复的时候不管用 var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'}, ...

  3. MySQL错误Another MySQL daemon already running with the same unix socket

    今天遇到RT这个问题后,导致数据库错误,然后在国外网站发现了一个解决方法,记录如下: 原因是:多个Mysql进程使用了同一个socket. 解决方法是:直接把mysql.sock文件改名即可.也可以删 ...

  4. Meta 整合

    Meta 整合:http://segmentfault.com/a/1190000002407912

  5. python保留指定文件、删除目录其他文件的功能(1)

    由于给客户的发布版本上客户改动了些代码和图片,我们这边给他们更新publish都是增量更新(开发提供更新指定的文件,我们提取出来给客户进行覆盖更新),但有时需要更新的文件较多导致不得不一个一个的进行查 ...

  6. ionic2+angular2

    ionic2+angular2中踩的那些坑 好久没写什么东西了,最近在做一个ionic2的小东西,遇到了不少问题,也记录一下,避免后来的同学走弯路. 之前写过一篇使用VS2015开发ionic1的文章 ...

  7. VC2010的破解方法(针对旗舰版)

    VS2010 正式版破解方法详解 全球开发者最为瞩目的Visual Studio 2010开发工具在4月12日正式发布,现为大家制作一个简单的破解教程有两种方法,操作不一样,原都一样(针对旗舰版,其他 ...

  8. Codeforces 372B Counting Rectangles is Fun

    http://codeforces.com/problemset/problem/372/B 题意:每次给出一个区间,求里面有多少个矩形 思路:预处理,sum[i][j][k][l]代表以k,l为右下 ...

  9. MySQL加锁分析

    参考:MySQL 加锁处理分析.该文已经讲的很详尽了,也易懂,下面仅仅是个人做的总结. 一. 背景 1.1 隔离级别 1.2 加锁过程 逐条处理,逐条加锁. 1.3 两阶段锁2PL 1.4 gap锁 ...

  10. uva1220--树的最大独立集+判重

    题意是挑选尽量多的人,并且每个人都不和他的父节点同时出现,很明显的最大独立集问题,难点在于如何判断方案是否唯一. 详情请见刘汝佳<算法竞赛入门经典--第二版>P282 #include&l ...