Solr管理索引库
1 维护索引
1.1 添加文档
添加单个文档
1.2 修改文档
Id一样,就修改
1.3 删除文档
1.3.1 删除制定ID的索引
删除制定ID的索引
<delete>
<id>1</id>
</delete>
<commit/>
1.3.2 删除查询到的索引数据
删除查询到的索引数据
<delete>
<query>id:change.me</query>
</delete>
<commit />
1.3.3 删除所有索引数据
删除所有索引数据
<delete>
<query>*:*</query>
</delete>
<commit />
1.4 批量导入数据
1.4.1 第一步:加入jar包
使用dataimport插件批量导入数据。
第一步:把dataimport插件依赖的jar包添加到solrcore(collection1\lib)中
还需要mysql的数据库驱动。
1.4.2 第二步:配置solrconfig.xml文件
第二步:配置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> |
1.4.3 第三步:创建一个data-config.xml
第三步:创建一个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> |
1.4.4 第四步:设置业务系统Field
在schema.xml中设置,如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field,如下是商品信息Field:
<!--product-->
<fieldname="product_name" type="text_ik" indexed="true"stored="true"/>
<fieldname="product_price" type="float" indexed="true"stored="true"/>
<fieldname="product_description" type="text_ik"indexed="true" stored="false" />
<fieldname="product_picture" type="string"indexed="false" stored="true" />
<field name="product_catalog_name"type="string" indexed="true" stored="true" />
<fieldname="product_keywords" type="text_ik"indexed="true" stored="false"multiValued="true"/>
<copyFieldsource="product_name" dest="product_keywords"/>
<copyFieldsource="product_description" dest="product_keywords"/>
1.4.5 第五步:重启tomcat,点击“execute”
第五步:重启tomcat,点击“execute”按钮导入数据
到入数据前会先清空索引库,然后再导入。
2 查询索引
通过/select搜索索引,Solr制定一些参数完成不同需求的搜索:
2.1 查询q
1. q - 查询字符串,必须的,如果查询所有使用*:*。
2.2 过虑查询fq
过滤查询价格从1到20的记录。
也可以在“q”查询条件中使用product_price:[1TO 20],如下:
也可以使用“*”表示无限,例如:
20以上:product_price:[20 TO *]
20以下:product_price:[* TO 20]
2.3 排序sort
3. sort - 排序,格式:sort=<fieldname>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:
按价格降序
2.4 开始start和行号rows
4. start - 分页显示使用,开始记录下标,从0开始
5. rows - 指定返回结果最多有多少条记录,配合start来实现分页。
显示前10条。
2.5 指定查询显示列fl
6. fl - 指定返回那些字段内容,用逗号或空格分隔多个。
显示商品图片、商品名称、商品价格
2.6 指定搜索Field:df
7. df-指定一个搜索Field
也可以在SolrCore目录 中conf/solrconfig.xml文件中指定默认搜索Field,指定后就可以直接在“q”查询条件中输入关键字。
2.7 指定输出格式wt
8. wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3增加的,要用通知我们,因为默认没有打开。
2.8 是否高亮hl
9. hl 是否高亮 ,设置高亮Field,设置格式前缀和后缀。