设为首页 收藏本站
查看: 1089|回复: 0

[经验分享] 开源搜索引擎Solr的快速搭建及集成到企业门户最佳实施方案--转载

[复制链接]

尚未签到

发表于 2015-7-17 10:04:32 | 显示全部楼层 |阅读模式
笔者经过研究查阅solr官方相关资料经过两周的研究实现了毫秒级百万数据的搜索引擎的搭建并引入到企业门户。现将实施心得和步骤分享一下。
  1.      jdk1.6
  安装jdk1.6到系统默认目录下X:\qc\Java目录下(注意要点:配置好环境变量)。
  2.      tomcat安装
  a)      安装tomcat到X:\qc\tomcat6目录下。
  b)     配置server.xml
  Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"URIEncoding="UTF-8" />
  3.      下载并部署solr1.4.1
  a)      拷贝本地solr(注意该solr文件夹并非war包而是solr连接数据库的配置包)目录到目标服务器X:\qc目录下。
  l  data-onfig.xml
  
  
  
  
  
  
  
  
  
  
  
  l  solrconfig.xml
  ${solr.data.dir:f:/qc/solr/data}
  
  
  
  
  f:/qc/solr/conf/data-config.xml
  
  
  l  schema.xml
  field name="id" type="string" indexed="true" stored="true" required="true" />
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  b)     部署war包solr到tomcat下
  在X:\qc\tomcat6\webapps下放置ache-solr-1.4.0\example\webapps\solr.war。
  c)      配置solr.xml
  l  创建目录X:\qc\Tomcat6\conf\Catalina\localhost。
  l  增加solr.xml内容如下:
  
  
  
  
  4.      启动f:\qc\tomcat6\bin\tomcat6.exe(带dos控制台)(注意这里tomcat安装时一定要改成tomcat6或者tomcat不能有横线或者空格否则可能导致solr无法正常索引哦)
  5.      索引全部数据:http://127.0.0.1/solr/dataimport?command=full-import(可能需要重新刷一次窗口才能真正的索引全部数据哦)
  6.测试url:http://127.0.0.1/solr/admin/如果可以看到solr管理界面说明搭建成功了
  7.把如下代码copy到本地另存成jsp放到你的工程里就可以实现毫秒级搜索百万数据量啦:
  


BODY {
FONT-FAMILY: arial
}
TD {
FONT-FAMILY: arial
}
.p1 {
FONT-FAMILY: arial
}
.p2 {
FONT-FAMILY: arial
}
.i {
FONT-FAMILY: arial
}
BODY {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000; PADDING-TOP: 6px; POSITION: relative; BACKGROUND-COLOR: #fff
}
INPUT {
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; moz-box-sizing: border-box; webkit-box-sizing: border-box; box-sizing: border-box
}
TABLE {
BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px
}
TD {
FONT-SIZE: 9pt; LINE-HEIGHT: 18px
}
EM {
COLOR: #cc0000; FONT-STYLE: normal
}
A EM {
TEXT-DECORATION: underline
}
.f14 {
FONT-SIZE: 14px
}
.f10 {
FONT-SIZE: 10.5pt
}
.f16 {
FONT-SIZE: 16px; FONT-FAMILY: Arial
}
.c {
COLOR: #7777cc
}
.p1 {
MARGIN-LEFT: -12pt; LINE-HEIGHT: 120%
}
.p2 {
MARGIN-LEFT: -12pt; WIDTH: 100%; LINE-HEIGHT: 120%
}
.i {
FONT-SIZE: 16px; LINE-HEIGHT: 1.4em; HEIGHT: 24px
}
.t {
COLOR: #0000cc; TEXT-DECORATION: none
}
A.t:hover {
TEXT-DECORATION: underline
}
.p {
PADDING-LEFT: 18px; FONT-SIZE: 14px; MARGIN: 0px 0px 20px; WORD-SPACING: 4px
}
.f {
PADDING-LEFT: 15px; FONT-SIZE: 100%; WIDTH: 33.7em; WORD-BREAK: break-all; LINE-HEIGHT: 120%; WORD-WRAP: break-word
}
.h {
MARGIN-LEFT: 8px; WIDTH: 100%
}
.s {
PADDING-LEFT: 10px; WIDTH: 8%; HEIGHT: 25px
}
.m {
FONT-SIZE: 100%; COLOR: #666
}
A.m:link {
FONT-SIZE: 100%; COLOR: #666
}
A.m:visited {
COLOR: #660066
}
.g {
FONT-SIZE: 12px; COLOR: #008000
}
.r {
WIDTH: 238px; CURSOR: hand; WORD-BREAK: break-all
}
.bi {
MARGIN-BOTTOM: 12px; HEIGHT: 20px; BACKGROUND-COLOR: #d9e1f7
}
.pl {
PADDING-RIGHT: 2px; PADDING-LEFT: 3px; FONT-SIZE: 14px; HEIGHT: 8px
}
.Tit {
FONT-SIZE: 14px; Z-INDEX: 200; POSITION: relative; HEIGHT: 21px
}
.Tit A {
COLOR: #0000cc
}
.fB {
FONT-WEIGHT: bold
}
.mo {
FONT-SIZE: 100%; COLOR: #666666; LINE-HEIGHT: 10px
}
A.mo:link {
FONT-SIZE: 100%; COLOR: #666666; LINE-HEIGHT: 10px
}
A.mo:visited {
FONT-SIZE: 100%; COLOR: #666666; LINE-HEIGHT: 10px
}
.htb {
MARGIN-BOTTOM: 5px
}
#ft {
CLEAR: both; BACKGROUND: #e6e6e6; LINE-HEIGHT: 20px; TEXT-ALIGN: center
}
#ft {
FONT-SIZE: 12px; COLOR: #77c; FONT-FAMILY: Arial
}
#ft  {
FONT-SIZE: 12px; COLOR: #77c; FONT-FAMILY: Arial
}
#ft SPAN {
COLOR: #666
}
FORM {
Z-INDEX: 9; MARGIN: 0px; POSITION: relative
}
.jc A {
COLOR: #cc0000
}
.btn {
FONT-SIZE: 14px; MARGIN-LEFT: 3px; WIDTH: 5.6em; PADDING-TOP: 2px; HEIGHT: 2em
}
.i {
VERTICAL-ALIGN: baseline
}
.btn {
VERTICAL-ALIGN: baseline
}
UNKNOWN {
TEXT-DECORATION: underline
}
#tb_mr {
Z-INDEX: 200; CURSOR: pointer; COLOR: #0000cc; POSITION: relative
}
#tb_mr B {
FONT-WEIGHT: normal; TEXT-DECORATION: underline
}
#tb_mr SMALL {
FONT-SIZE: 11px
}
#more {
BORDER-RIGHT: #9a99ff 1px solid; BORDER-TOP: #9a99ff 1px solid; DISPLAY: none; FONT-SIZE: 14px; Z-INDEX: 200; BACKGROUND: #fff; LEFT: 314px; OVERFLOW: hidden; BORDER-LEFT: #9a99ff 1px solid; WIDTH: 58px; BORDER-BOTTOM: #9a99ff 1px solid; POSITION: absolute; TOP: 22px; HEIGHT: 100px; outline: none
}
#more A {
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 7px; PADDING-BOTTOM: 0px; WIDTH: 4em; COLOR: #0001cf; LINE-HEIGHT: 24px; PADDING-TOP: 0px; HEIGHT: 25%; TEXT-DECORATION: none
}
#more A SPAN {
FONT-FAMILY: "宋体"
}
#more A:hover {
BACKGROUND: #d9e1f6
}
#more DIV {
BACKGROUND: #ccccff; MARGIN: 0px 3px; OVERFLOW: hidden; HEIGHT: 1px
}
#out {
MARGIN-LEFT: 880px; ZOOM: 1
}
#in {
FLOAT: left; MARGIN-LEFT: -880px; POSITION: relative
}
#wrapper {
ZOOM: 1; min-width: 880px
}
#sx {
CURSOR: pointer; COLOR: #00c; TEXT-DECORATION: underline
}
#u {
FONT-SIZE: 12px; Z-INDEX: 210; RIGHT: 10px; MARGIN: 0px; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px; TEXT-ALIGN: right
}
.result {
TABLE-LAYOUT: fixed; WIDTH: 34em
}

   
搜索引擎


     


   


  
  
  
   


   搜索内容:
      
      
      
   
      
      
      
      
  
  
   
   
   
      
   




   
     
            
            
            
            
            
            
        
     
   
  
  
  
  

   
   
   
   function xmlhttpPost(strURL) {
   if(document.forms['f1'].q.value.length==0||document.forms['f1'].q.value.replace(/(^\s*)|(\s*$)/g,"")=="")
    {
     alert("请输入您要检索的内容...");
        return false;
    }
    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=100'
        ];
  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
  //eval拼接返回一个合理的字符串
  parse(rsp);
}
  function parse(j) {
    var header = document.getElementById("header");
    var rh = j.responseHeader;
    var header_str = " 搜索关键字: \"" rh.params.q "\", 共为您找到: " j.response.numFound "条相关的数据, 耗时: " rh.QTime "ms";
    header.innerHTML = "" "  " header_str "";
    var docs = j.response.docs;
     $.pagination('pages',1,12, docs.length, test, docs);
   }
function test(e)
{
   
  $.pagination('pages', e.data.current, e.data.pagination.pageSize, e.data.pagination.totalRecord,test,e.data.docs)
    }
   
  
  


引用:http://blog.chinaunix.net/uid-25723371-id-3221379.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87556-1-1.html 上篇帖子: django全文搜索学习心得(二)solr 篇 下篇帖子: SOLR (全文检索)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表