提交数据:
{ " id " : " 2 " , " title " : " test " }
再次查询:
{ " responseHeader " : { " status " : 0 , " QTime " : 1 , " params " : { " q " : " *:* " , " indent " : " true " , " wt " : " json " , " _ " : " 1608643854340 " } }, " response " : { " numFound " : 3 , " start " : 0 , " docs " : [ { " id " : " 1 " , " title " : [ " zhai " ], " _version_ " : 1686785156649582600 }, { " id " : " change.me " , " title " : [ " change.me " ], " _version_ " : 1686785221848989700 }, { " id " : " 2 " , " title " : [ " test " ], " _version_ " : 1686785333280112600 } ] } }
(2)更新
当ID相同的时候进行的是更新操作:
提交一个已经存在的ID
{ " id " : " 2 " , " title " : " hello " }
查询:
{ " responseHeader " : { " status " : 0 , " QTime " : 1 , " params " : { " q " : " *:* " , " indent " : " true " , " wt " : " json " , " _ " : " 1608643946423 " } }, " response " : { " numFound " : 3 , " start " : 0 , " docs " : [ { " id " : " 1 " , " title " : [ " zhai " ], " _version_ " : 1686785156649582600 }, { " id " : " change.me " , " title " : [ " change.me " ], " _version_ " : 1686785221848989700 }, { " id " : " 2 " , " title " : [ " hello " ], " _version_ " : 1686785397815771100 } ] } }
执行过程是先删除再添加
(3)删除
删除ID为1的索引:
<delete> <id> 1 </id> </delete> <commit/>
查询结果中ID为1的索引全部消失了
按照条件删除ID为2的索引:
<delete> <query>id: 2 </query> </delete> <commit/>
删除所有:
<delete> <query>*:*</query> </delete> <commit/>
2、配置数据导入
(1)jar包
将以上两个jar包复制到核的lib目录下,然后将mysql的驱动包也拷贝到此目录下:
(2)配置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>
(3)创建一个data-config.xml,保存到collection1\conf\目录下(与solrconfig.xml在同一级目录下)
<?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>
(4)向数据库导入数据
(5)设置业务系统域(schema.xml)
<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 " />
在第三步中,只有ID能够域系统中已经存在的ID进行映射,因此,需要向系统中添加域来满足业务需求
<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 " />
上面是配置根据关键字搜索的拷贝域,就是将商品的名称和描述拷贝到一个域中,搜索的时候既不是根据名称或描述搜索,而是将其拷贝到一个域中将两个字段组合后进行搜索
(6)重启Tomcat
(7) 注意点
如果是Mysql8需要更新jar包到8版本,同时,获取数据库的连接的方法也要注意更改
<?xml version= " 1.0 " encoding= " UTF-8 " ?> <dataConfig> <dataSource type= " JdbcDataSource " driver = " com.mysql.cj.jdbc.Driver " url = " jdbc:mysql://localhost:3306/lucene?serverTimezone=CST " 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>
(8)测试
查询:
3、查询
(1)关键字查询
(2)多条件查询
(3)过滤
(4)排序
(5)只要某一个字段
用逗号分隔就可以查询多个字段
(6)设置查询的关键字高亮
运行结果:
Solr:后台管理界面的使用(管理索引库、导入数据库数据、查询)
标签:collect 取数据 相同 load roo 关键字搜索 rgb handle 加域
查看更多关于Solr:后台管理界面的使用(管理索引库、导入数据库数据、查询)的详细内容...