提交数据:
{ " 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:后台管理界面的使用(管理索引库、导入数据库数据、查询)的详细内容...