???
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"T"HH24:MI:SS"Z"') 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"T"HH24:MI:SS"Z"') as lg_timestamp
,to_char(LOGOFF_TIME,'yyyy-mm-dd"T"HH24:MI:SS"Z"') 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 >= (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 文件
?
?主要作用是载入上面的配置文件,有点类似web.xml的作用 ? 4在浏览器中输入http://ip:port/solr/dataimport?command=full-import&clean=true?地址,回车,开始建立索引 ? 5在导入过程中可以在浏览器中输入http://ip:port/solr/dataimport? 来查看导入状态。
? ? ? ? <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
?
?6在浏览器中输入http://ip:port/solr/admin可以进入 solr的管理页面。
?
?
?
?
?
?