2018_06_21 全文检索技术___Solr

Solr主要用于对其他存储系统中已有的数据进行分析,查询,然后展示结果;利用solr强大的搜索索引功能,找到自己需求的结果。


适用场景:

对于存储在文件中的日志 可以导入到solr中做分析,

对于 关系型数据库里需要做全文搜索的字段 可以导入到slor 中


Solr安装使用(window版):

Solr可以算作是一个独立的java工程,所以整个实例中,需要tomcat和solr的安装包

1.将tomcat和solr解压到同一个目录下。


2.把solr-4.10.3\dist目录下的solr-4.10.3.war部署到tomcat下。把war包改名为solr.war


3.启动tomcat,将war自动解压,关闭tomcat,删除solr.war

4.把\solr-4.10.3\example\lib\ext目录下的所有的jar包添加到tomcat下的webapp中的solr工程中


5.solr的使用需要一个solrhome,solrhome就是solr服务器所有的配置文件存放的目录。可以使用solr-4.10.3\example\solr目录做为solrhome


6.

(1)、collection1目录叫做solrcore,每个SolrCore就是一个独立的索引库。Solrcore之间是完全独立的。

(2)、collection1\conf目录下保存的是每个索引库的配置。两个重要的配置文件schema.xml、solrconfig.xml。

(3)、Solrconfig.xml

a)        luceneMatchVersion:使用的Lucene的版本号。

b)       Lib。默认的目录是Collection1/lib目录,如果需要添加扩展包,需要手工创建。

c)        dataDir:索引库存储的目录。默认是Collection1/data目录。会自动创建。如果想更改索引库的存放目录可以更改此配置。

7.配置solr服务,指定solrhome的位置。告诉solr服务solrhome在什么地方。

需要修改solr工程的web.xml文件。

web.xml中直接搜索env-entry即可,默认是注释的,打开注释,将路径换成自己的solrhome的路径即可



8.启动tomcat

访问:http://localhost:启动tomcat的端口号/solr

9.看到以下页面,即solr服务启动成功!




一个solrhome中可以有多个solr core实例,



当面对一个新的solr core时,如果想使用后台管理界面来维护索引库,导入几个常用的包以及进行数据源的配置。

否则,无法使用网页版面对索引库进行批量导入索引操作。即会出现出下图所示错误:


那么如何解决这个问题呢?

首先需要配置dataimport插件:

第一步:把dataimport插件使用的jar包添加到collection2/lib目录下。

所需jar包在

需要这两个jar包,并且,还需要连接数据库,与数据库进行连接的驱动包,mysql或者oracle的驱动包,一同放到collection/lib下。


第二步:需要修改solrconfig.xml,在其中添加一个requestHandler。

<requestHandler name="/dataimport" 
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
  </requestHandler> 

第三步:新建一个data-config.xml和solrconfig.xml在同一个目录下。


data-config.xml中的配置信息

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource driver="com.mysql.jdbc.Driver"   
		  url="jdbc:mysql://localhost:3306/zzlc"   
		  user="root"   
		  password="qwQsd123456"/>   
<document>   
	<entity name="item" query="SELECT * from tb_item ">
		<field column="item_id" name="id"/> 
		 <field column="item_title" name="title"/> 
		 <field column="item_sell_point" name="sell_point"/> 
		 <field column="item_price" name="price"/> 
		 <field column="item_image" name="image"/> 
		 <field column="item_category_name" name="category_name"/> 
	</entity>   
</document>   
</dataConfig>

第四步:在schema.xml中添加对应的field字段进行管理

<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>

添加成功后,重启tomcat,即可看到



如果想使用IK分词器,需要将分词,停用词,IK.xml添加到工程中。



下拉框中的item即为连接数据库,将查询出的数据放入索引库中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值