zsy001 发表于 2016-12-15 09:18:58

SOLR的学习整理

Apache Solr
  项目地址   http://lucene.apache.org/solr/,一个基于lucene的开源搜索项目,可以基于文本,数据库等分词建立索引,提供查询的API接口。
  SOLR项目下载下来大概30多M,默认采用JETTY作为APPSERVER,和TOMCAT类似的一个开源中间件软件。
  项目里面主要使用solr+oracle来实现全文搜索的查询,同样,也支持其他的关系型数据库。下面是基于ORACLE表格为数据源的配置。
  首先确认jetty的端口配置,有时候需要更改,可能端口已经被占用了。

<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.bio.SocketConnector">
<Set name="port"><SystemProperty name="jetty.port" default="8989"/></Set>
<Set name="maxIdleTime">50000</Set>
<Set name="lowResourceMaxIdleTime">1500</Set>
</New>
</Arg>
</Call>
  假如启动时报端口已经被占用的错误,那么需要更改成其他的端口。
  2配置data-config.xml文件,假如不存在,那么新建一个,放在目录solr/conf/data-config.xml下面。配置详情
   
<dataConfig>
<dataSource
driver="ENC(Ji+0Hu8V13iC0zBLfzu4bPZHjtDMpETcttc1ysa0y1maWD4rbpzXdQ\=\=)"
url="ENC(cAJkOTDUZcW2epqSuFcQHiVT0PnXaJo2/2E1rUbMMQMgb47SByMPS5mutQYpZmrSvES8DmRs2mk\=)"
user="ENC(K0EBhh8/VE0Hot+9ktQZOw\=\=)"
password="ENC(z9let1hb06zgus/7PhReHg\=\=)"
batchSize="100"
/>
<document name="capaa_search">
<entity name="audit" pk="id"
query = "select
solr_sequence.nextval as id
,lg_id
,SESSION#                                 
,to_char(timestamp,'yyyy-mm-dd&quot;T&quot;HH24:MI:SS&quot;Z&quot;') as timestamp   
,SCN                                    
,XID                                    
,SCHEMA_OBJECT                           
,OBJECT_TYPE                              
,COMMAND_TYPE                           
,SQLTEXT                                 
,ACTIONNAME                              
,AUDITLEVEL                              
,RETURNCODE                              
,ERRMSG                                 
,RESOLVED                                 
,REMARK                           
,RECNUMS                                 
,INST_ID                                 
,BIND_DATA                              
,END_IP                                 
,END_SESSION_INFO                        
,RULE_NAME                                 
,lg_audseq                                 
,USERID                                 
,UTYPE_ID                                 
,USERTYPE                                 
,DBUSER                                 
,OSUSER                                 
,APPUSER                                 
,REALUSER                                 
,IP_ADDRESS                              
,MAC_ADDRESS                              
,MACHINE                                 
,APP_NAME                                 
,APP_GNAME                              
,to_char(lg_timestamp,'yyyy-mm-dd&quot;T&quot;HH24:MI:SS&quot;Z&quot;') as lg_timestamp      
,to_char(LOGOFF_TIME,'yyyy-mm-dd&quot;T&quot;HH24:MI:SS&quot;Z&quot;') as logoff_time   
,LOGOFF_LREAD                           
,LOGOFF_PREAD                           
,LOGOFF_PWRITE                           
,SESSION_CPU                              
,SID                                    
,SERIAL#                                 
,SESSIONID                              
,CLIENT_ID                              
,CLIENT_INFO                              
,OS_PROCESS                              
,AUDIT_CLASS_ID                           
,AUDIT_CLASS                              
,AUDIT_LEVEL                              
,RETURN_CODE                              
,lg_errmsg                                 
,DBID                                    
,DBNAME                                 
,lg_resolved                                 
,lg_remark                                 
,lg_recnums                                 
,lg_inst_id                                 
,EUSER_NAME                              
,EGROUP_NAME                              
,EAREA_NAME                              
,ELEVEL_NAME                              
,lg_rule_name   
from
mc$asset_v_audit where ('${dataimporter.request.clean}' != 'false' OR last_modified &gt;= (to_date('${dataimporter.last_index_time}','YYYY-MM-DD HH24:MI:SS')))">
<field column="TIMESTAMP" name="timestamp" xpath="/RDF/item/date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'"/>
<field column="LG_TIMESTAMP" name="lg_timestamp" xpath="/RDF/item/date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'"/>
<field column="LOGOFF_TIME" name="logoff_time" xpath="/RDF/item/date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'"/>
</entity>
</document>
</dataConfig>


  







  这里主要是配置管理库的数据源,以及相关的SQL语句。
   
  3 配置solrconfig.xml 文件
   
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
  主要作用是载入上面的配置文件,有点类似web.xml的作用
  4在浏览器中输入http://ip:port/solr/dataimport?command=full-import&clean=true 地址,回车,开始建立索引
  5在导入过程中可以在浏览器中输入http://ip:port/solr/dataimport  来查看导入状态。
       








  6在浏览器中输入http://ip:port/solr/admin可以进入 solr的管理页面。
   
页: [1]
查看完整版本: SOLR的学习整理