Solr管理索引库——(十三)

a)          维护索引

 1.  添加/更新文档

添加或更新单个文档

 

2.   批量导入数据(导入mysql的)

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

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

    还需要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>
复制代码

第四步:如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field,如下是商品信息Field:

复制代码
<!--product-->
   <field name="product_name" type="text_ik" indexed="true" stored="true"/>
   <field name="product_price"  type="float" indexed="true" stored="true"/>
   <field name="product_description" type="text_ik" indexed="true" stored="false" />
   <field name="product_picture" type="string" indexed="false" stored="true" />
   <field name="product_catalog_name" type="string" indexed="true" stored="true" />

   <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
   <copyField source="product_name" dest="product_keywords"/>
   <copyField source="product_description" dest="product_keywords"/>
复制代码

 

第五步:重启tomcat

第六步:点击“execute”按钮导入数据

  导入数据前会先清空索引库,然后再导入。

 

查看刚才导进去的数据

 

3.  删除文档

删除索引格式如下:

 

1) 删除制定ID的索引

<delete>

         <id>8</id>

</delete>

<commit/>

2) 删除查询到的索引数据

<delete>

         <query>product_catalog_name:幽默杂货</query>

</delete>

3) 删除所有索引数据

 <delete>

         <query>*:*</query>

</delete>

b)          查询索引

通过/select搜索索引,Solr制定一些参数完成不同需求的搜索:

 

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

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

过滤价格15到20的,名字带花儿的

也可以使用“*”表示无限,例如:

20以上:product_price:[20 TO *]

20以下:product_price:[* TO 20]

3. sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:

按价格降序

 

4.start - 分页显示使用,开始记录下标,从0开

5.rows - 指定返回结果最多有多少条记录,配合start来实现分页。

6.fl - 指定返回那些字段内容,用逗号或空格分隔多个。

 

7.  df-指定一个默认的搜索Field

也可以在SolrCore目录 中conf/solrconfig.xml文件中指定默认搜索Field,指定后就可以直接在“q”查询条件中输入关键字。

 

8.wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3增加的,要用通知我们,因为默认没有打开。

9.  hl 是否高亮 ,设置高亮Field,设置格式前缀和后缀。

 

 

例如:

 

posted @   QiaoZhi  阅读(286)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示