solr搭建电商搜索引擎04 - 上传搜索数据和创建索引

前文中我们已经创建了core并且配置好了solrconfig和schema两个文件,下面进行最后一步:上传数据和创建索引。根据数据形式的不同,我们可以选择WEB UI和DIH(Data Import Handler)两种上传数据的方法。

1 Solr网页交互界面(WEB UI)

在solr管理页面选择core后,我们就可以看到用来上传数据的菜单“Documents”。Documents既可以上传单个文件,也可以实现多个文件的批量上传,相比DIH更适合上传字段简单、数据量少的文本形式数据。上传页面的可选属性如下:

  • Document Type:上传数据的格式类型,“CSV”文件对应“.csv”文件,“JSON”和“XML”对应“.json”和“.xml”的单个文件,“Solr Commend”对应“.json”和“.xml”的批量导入(事实上我们很少会上传单个文件);
  • Document(s):粘贴数据的文本框,选择数据的格式类型后solr会有数据格式示例;
  • Commit Within:表示数据上传必须在指定时间(毫秒)内完成,否则放弃上传;
  • Overwrite:是否对具有相同主键(“uniqueKey”)的Document覆盖;
  • Boost:Document的权重。
    在这里插入图片描述

1.1 上传JSON格式文件

在“Document Type”中选择“Solr Commend”,参考solr提供的格式示例,上传文件如下:

{
"add":{
"doc":{
"product_id":"0",
"product_name":"螺纹锁固胶-高强度耐高温型 桔红色 高强度 中粘度",
"product_code":"272",
"order_code":"AA0053",
"product_price":"145.4",
"product_brand":"LOCTITE",
"product_brand":"乐泰",
"product_unit":"1支",
"product_days":"37",
"product_rank":"55"}},
"add":{
"doc":{
"product_id":"1",
"product_name":"螺纹锁固胶-超高强度耐高温型 红色 高强度 高粘度",
"product_code":"277",
"order_code":"AA0142",
"product_price":"85.8",
"product_brand":"LOCTITE",
"product_brand":"乐泰",
"product_unit":"1支",
"product_days":"37",
"product_rank":"26"}}
}

这里需要注意的是,对于之前schema中定义的多值域“product_brand”,我们在json需要重复提交。看到页面显示“Status:success”,表示文件上传成功。
在这里插入图片描述

1.2 上传XML格式文件

在“Document Type”中选择“Solr Commend”,参考solr提供的格式示例,上传文件如下:

<add>
<doc>
<field name="product_id">0</field>
<field name="product_name">螺纹锁固胶-高强度耐高温型 桔红色 高强度 中粘度</field>
<field name="product_code">272</field>
<field name="order_code">AA0053</field>
<field name="product_price">145.4</field>
<field name="product_brand">LOCTITE</field>
<field name="product_brand">乐泰</field>
<field name="product_unit">1支</field>
<field name="product_days">37</field>
<field name="product_rank">55</field>
</doc>
<doc>
<field name="product_id">1</field>
<field name="product_name">螺纹锁固胶-超高强度耐高温型 红色 高强度 高粘度</field>
<field name="product_code">277</field>
<field name="order_code">AA0142</field>
<field name="product_price">85.8</field>
<field name="product_brand">LOCTITE</field>
<field name="product_brand">乐泰</field>
<field name="product_unit">1支</field>
<field name="product_days">37</field>
<field name="product_rank">26</field>
</doc>
</add>

和上传JSON文件时类似,对于“product_brand”字段我们可以重复提交实现多值。
在这里插入图片描述

1.3 上传CSV格式文件

在“Document Type”中选择“CSV”,参考solr提供的格式示例,上传文件如下:

product_id,product_name,product_code,order_code,product_price,product_brand,product_unit,product_days,product_rank
0,螺纹锁固胶-高强度耐高温型 桔红色 高强度 中粘度,272,AA0053,145.4,"LOCTITE/乐泰",1支,37,55
1,螺纹锁固胶-超高强度耐高温型 红色 高强度 高粘度,277,AA0142,85.8,"LOCTITE/乐泰",1支,37,26

由于solr规定csv的字段之间使用‘,’分隔,因此如果字段值中含有‘,’,我们要对值使用双引号(字段名不能使用)。对于CSV文件中的多值,本文暂未找到上传方法。
在这里插入图片描述
这里提供工业品电商商品数据一份(公开数据),已经转为XML格式,方便大家上传solr学习。
solr_data_product

2 Solr数据导入处理器(DIH)

更新中。。。

3 solr文件数目和删除文件

上传文件后,我们可以点击左边的“Overview”菜单,查看当前core的文件数目。
在这里插入图片描述
根据域名和域值删除文件

<delete><query>product_id:0</query></delete>
<commit/>

删除全部文件

<delete><query>*:*</query></delete>
<commit/>