一、批量数据的导入:

使用dataimport插件批量导入数据。

第一步:把dataimport插件依赖的jar包添加到solrcore(collection1\lib)中

solr 搜索引擎 架构 solr实战_xml

solr 搜索引擎 架构 solr实战_solr 搜索引擎 架构_02

还需要mysql的数据库驱动。

第二步:配置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,保存到collection1\conf\目录下

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource type="JdbcDataSource"   
		  driver="com.mysql.jdbc.Driver"   
		  url="jdbc:mysql://localhost:3306/lucene"   
		  user="root"   
		  password="root"/>   
<document>   
	<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
		 <field column="pid" name="id"/> 
		 <field column="name" name="product_name"/> 
		 <field column="catalog_name" name="product_catalog_name"/> 
		 <field column="price" name="product_price"/> 
		 <field column="description" name="product_description"/> 
		 <field column="picture" name="product_picture"/> 
	</entity>   
</document>   

</dataConfig>

第四步:重启tomcat

solr 搜索引擎 架构 solr实战_bc_03

【注意】上面的Entity下拉框,点击选择product(这个就是data-config.xml配置文件中enetity的name属性值),然后点击Execute按钮!

二、索引库的维护CRUD

添加、修改比较简单,这里面介绍一下删除和查询

删除索引格式如下:

1) 删除制定ID的索引 
<delete>
	<id>8</id>
</delete>
<commit/>
2) 删除查询到的索引数据 
<delete>
	<query>product_catalog_name:幽默杂货</query>
</delete>
3) 删除所有索引数据
 <delete>
	<query>*:*</query>
</delete>

查询索引:

  1. q - 查询字符串,必须的,如果查询所有使用*:*。

solr 搜索引擎 架构 solr实战_solr 搜索引擎 架构_04

 2. fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:

solr 搜索引擎 架构 solr实战_bc_05

 

3. sort - 排序

 

solr 搜索引擎 架构 solr实战_xml_06

solr 搜索引擎 架构 solr实战_mysql_07

solr 搜索引擎 架构 solr实战_mysql_08