`
chenlb
  • 浏览: 693386 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

solr json ajax

阅读更多
    用ajax去请求solr服务。返回json,然后解释。让solr返回json的参数是wt=json。然后javascript用evel()解释成对象。
我的solr会返回:auother,title,introduce这几个域。先创建一个jsp或html,如:json.jsp

1.json.jsp关键的html内容
  <form action="select/" name="f1" method="get" onsubmit="xmlhttpPost('/solr/select'); return false;" >
      Chenlb: 
      
<input type="text" name="q" size="80" value="文档">
      
<input name="start" type="hidden" value="0">
    
<input name="rows" type="hidden" value="10">
    
<input name="indent" type="hidden" value="on">
    
<input name="wt" type="hidden" value="">
      
<input type="button" value=" 搜 索 " onclick="xmlhttpPost('/solr/select');">
      
<input type="button" value=" get json " onclick="document.forms['f1'].wt.value='json';document.forms['f1'].submit();">
      
<input type="button" value=" get xml " onclick="document.forms['f1'].wt.value='';document.forms['f1'].submit();">
  
</form>
  
<div style="background-color: #ccccff; height: 15px;"></div>
  
<p>
    
<div id="header"></div>
    
<div id="response"></div>
    
<table id="docs" class="tab" cellspacing="1">
        
<tr height="25" style="background-color: #cccccc; color: #0000ff;">
            
<td>作者</td>
            
<td>简介</td>
            
<td>标题</td>
            
<td>score</td>
        
</tr>
    
</table>

2.javascript部分
function xmlhttpPost(strURL) {
    
var xmlHttpReq = false;
    
var self = this;
    
if (window.XMLHttpRequest) { // Mozilla/Safari
        self.xmlHttpReq = new XMLHttpRequest(); 
    }
    
else if (window.ActiveXObject) { // IE
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    
var params = getstandardargs().concat(getquerystring());
    
var strData = params.join('&');
    
    
var header = document.getElementById("response");
    header.innerHTML 
= strURL+'?'+strData;

    self.xmlHttpReq.open('get', strURL
+'?'+strData+'&time='+new Date().getTime(), true);
    self.xmlHttpReq.setRequestHeader('Content
-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange 
= function() {
        
if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(
null);
}

function getstandardargs() {
    
var params = [
        'wt
=json'
        , 'indent
=on'
        , 'hl
=true'
        , 'hl.fl
='
        , 'fl
=*,score'
        , 'start
=0'
        , 'rows
=10'
        ];

    
return params;
}
function getquerystring() {
  
var form = document.forms['f1'];
  
var query = form.q.value;
  qstr 
= 'q=+ encodeURI(query);    //escape
  return qstr;
}

// this function does all the work of parsing the solr response and updating the page.
function updatepage(str){
  
//document.getElementById("response").innerHTML = str;
  var rsp = eval("("+str+")"); // use eval to parse Solr's JSON response
  parse(rsp);
}

function parse(j) {
    
var header = document.getElementById("header");
    
var rh = j.responseHeader;
    
var header_str = " 搜索: \""+rh.params.q+"\", 花了: "+rh.QTime+"ms, 共显示: "+j.response.numFound+"条记录, 总共有: "+rh.params.rows;
    header.innerHTML 
= header_str;
    
var docs = j.response.docs;
    
var tab = document.getElementById("docs");
    
for(; tab.rows.length >1; ) {
        tab.deleteRow(
-1);
    }
    
var tr;
    
var td;
    
for(var i=0; i<docs.length; i++) {
        tr 
= tab.insertRow(-1);
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].author;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].introduce;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].title;
        
        td 
= tr.insertCell(-1);
        td.innerHTML 
= docs[i].score;
    }
   }

3.现在可以搜索了。
http://localhost:8080/solr/json.jsp

solr怎么部署到Tomcat里请看:http://www.blogjava.net/chenlb/archive/2008/03/25/188459.html

分享到:
评论

相关推荐

    solr资料以及问题汇总

    "solr json ajax - chenlb 的学习笔迹 - JavaEye技术网站.mht"可能涉及到Solr的JSON API和Ajax技术的结合,这在现代Web应用中很常见,能够实现异步交互,提升用户体验。 "Lucene-Solr开发经验.mht"文件可能分享了...

    大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程

    4. **SpringMVC与Ajax交互**: - 使用@ResponseBody返回JSON数据。 - 使用@RequestBody接收JSON数据。 - 配置静态资源和拦截器。 5. **SpringMVC高级特性**: - 异步处理:使用@Async执行异步任务。 - 文件...

    Ajax+Lucene (H).rar

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新...在实际项目中,开发者可能还需要结合其他技术和工具,如jQuery简化Ajax操作,Solr或Elasticsearch提供更高级的搜索服务等。

    Ajax+Lucene 打造搜索引擎

    搜索完成后,服务器将结果显示为JSON格式,再由前端的Ajax回调函数接收并更新页面。 为了优化用户体验,可以使用AJAX的局部刷新特性来实现搜索结果的实时滚动加载,即在用户滚动到底部时自动加载更多结果。此外,还...

    solrjd.zip

    在Solrjd项目中,前端界面可能会使用AJAX技术与Solr交互,实现实时的搜索建议和结果展示。 为了优化搜索体验,Solr提供多种查询分析器和过滤器,如中文分词器,用于将中文文本拆分成可搜索的关键词。此外,还可以...

    solifeSearch:所以生活源代码(solr搜索)服务器

    它支持多种数据源的接入,例如XML、CSV或JSON,可以处理多种语言,并且具备丰富的字段类型定义和分析器,确保了不同类型的搜索需求得到满足。此外,Solr还提供了集群和分布式搜索功能,能够处理大规模的数据并实现高...

    仿google搜索提示效果和二级联动

    服务器端使用Struts2 Action和Spring Service处理请求,可能借助于全文搜索引擎(如Solr或Elasticsearch)或数据库查询来获取匹配的搜索关键词。返回的结果以JSON形式传输回客户端,jQuery将其解析并动态添加到搜索...

    djnago-thems:在 Django 中添加主题,使用 ajax 创建、更新、延迟、搜索

    1. **创建Ajax视图**:在Django应用中创建处理Ajax请求的视图函数,这些视图通常只返回JSON数据,不渲染完整的HTML页面。 2. **定义URL路径**:为Ajax视图设置URL路径,确保前端能够正确发送请求。 3. **编写...

    JavaEE求职简历-姓名-JAVA开发工程师.doc

    在前端技术方面,他熟练掌握HTML、CSS、JavaScript、JQuery、Json、Ajax和EasyUI,同时对MySQL数据库操作有深厚的理解,包括SQL语句的编写。 【姓名】对权限控制有深入理解,能用Shiro完成访问控制和动态授权。他还...

    一个适合新手学习的电商项目

    使用jsonp返回商品目录(ajax方式动态加载) ### 代码: /** * 购物车Service */ @Service public class CartServiceImpl implements CartService { @Value("${REST_BASE_URL}") private String REST_BASE...

    java开发工程师-xx简历.pdf

    * 熟悉掌握 JavaScript、Ajax、jQuery、JSON 等前台技术 * 熟悉使用 EasyUI、zTree、ECharts 等插件 * 熟悉使用 CKeditor 富文本编辑器 后台技术 * 熟悉掌握 Servlet、Cookie、Session、JDBC、JavaBean、EL 表达式...

    基于java的上商城设计与实现.pdf

    11. **Spring MVC 和 Jackson**: Spring MVC是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架,而Jackson则是一个Java库,用于处理JSON数据格式。提及Spring Mapping和Jackson Value表明商城系统在数据处理...

    java3年工作经验简历_java简历.docx

    接着,他在苏州鼎铭网络科技有限公司负责了“实惠商城”的开发,该项目采用了SpringMVC、MyBatis、SpringMVC+MyBatis+MySql+C3P0+Json+JQuery+Ajax的技术栈,通过MyEclipse、SVN和Tomcat进行开发和部署。在系统架构...

    java工程师求职简历_java简历.doc

    在这个项目中,他利用SSH框架进行开发,结合AJAX和JSON实现数据交互,使用Shiro进行身份验证,以及Hibernate进行持久化操作,还运用了Activiti进行工作流设计。 另一个项目是“世界大药房药店超市进销存管理系统”...

    java开发简历中参考项目

    在前端,项目大量运用Ajax(jQuery和JSON)技术,实现了页面的异步更新,提升了用户体验。 责任描述中,主要职责包括: 1. 预约教练模块:设计并实现了一个让学员可以按时间或教练预约的功能。学员登录后,能够查看...

    王凯某求职简历_20201129154431_嵌入式_java简历_程序员简历模板_计算机相关专业.doc

    10. SSH框架:熟悉SSH框架进行开发,JSP+AJAX+JSON完成数据交互展示。 11. 工作流技术:熟悉Activiti工作流技术,实现流程的流转和终结。 12. Excel文件操作:熟悉POI技术进行Excel文件的上传解析和下载写入操作。...

    JavaEE求职简历-姓名-JAVA开发工程师-范文.doc

    - **前端技术**:熟悉HTML、JSP、CSS、JavaScript、Ajax、EL和JSTL,同时使用过jQuery、EasyUI和Bootstrap框架。 - **MVC框架**:熟练掌握SpringMVC,了解Struts2,对Spring的IOC和AOP有深入理解和实践。 - **...

    JavaEE求职简历-姓名-JAVA开发工程师.docx

    14. **前端技术**:项目可能使用LayUI+Thymeleaf+JQuery+Ajax+JSON进行界面设计和交互,ECharts用于数据可视化。 15. **其他工具和技术**:如Maven多模块构建,SVN版本控制,MySQL数据库,C3P0连接池,Hibernate的...

Global site tag (gtag.js) - Google Analytics