隨筆-153  評(píng)論-235  文章-19  trackbacks-0
              用ajax去請(qǐng)求solr服務(wù)。返回json,然后解釋。讓solr返回json的參數(shù)是wt=json。然后javascript用evel()解釋成對(duì)象。
          我的solr會(huì)返回:auother,title,introduce這幾個(gè)域。先創(chuàng)建一個(gè)jsp或html,如:json.jsp

          1.json.jsp關(guān)鍵的html內(nèi)容
            <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>簡(jiǎn)介</td>
                      
          <td>標(biāo)題</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.現(xiàn)在可以搜索了。
          http://localhost:8080/solr/json.jsp

          solr怎么部署到Tomcat里請(qǐng)看:http://www.aygfsteel.com/chenlb/archive/2008/03/25/188459.html

          posted on 2008-03-28 17:33 流浪汗 閱讀(2094) 評(píng)論(0)  編輯  收藏 所屬分類: Lucene
          主站蜘蛛池模板: 德安县| 通山县| 荣昌县| 巢湖市| 海口市| 屏东县| 阳春市| 界首市| 德格县| 牟定县| 建平县| 宁乡县| 仁布县| 新晃| 保康县| 日土县| 合川市| 常德市| 邓州市| 汤阴县| 遂平县| 静安区| 英德市| 景东| 岑巩县| 龙州县| 阜城县| 麻栗坡县| 长宁区| 易门县| 蓬溪县| 河间市| 自治县| 石柱| 舞阳县| 上思县| 惠东县| 定西市| 清苑县| 丽水市| 儋州市|