古道长亭

Contact me with ixiaoqiang0011@gmail.com


  • 首页

  • 归档

  • 分类

  • 关于

  • Book

  • 搜索

Solr数据操作

时间: 2023-06-26   |   分类: Solr   搜索引擎   | 字数: 1342 字 | 阅读约: 3分钟 | 阅读次数:

Solr数据操作

1. 使用dataimport导入数据库数据

不作演示了……………….

2. 查询基本语法

  • q:查询字符串

    q: 查询关键字(如果查询所有使用 *:*)
    
  • fq:(filter query)过滤查询

    作用:在q查询符合结果中同时是fq查询符合的 
    请求fq是一个数组(多个值) 
    过滤查询价格从1到120的记录。 
    price:[1 TO 120] 
    也可以使用“*”表示无限,
    例如: 
    120以上:price:[120 TO *] 
    120以下:price:[* TO 120]
    
  • sort: 排序, desc, asc

  • start: 分页显示使用,开始记录下标,从0开始

    rows: 指定返回结果最多有多少条记录,配置start来实现分页

  • fl: (field list)指定返回哪些字段内容,用逗号或空格分隔多个

  • df:指定默认搜索Field

  • wt: (writer type)指定输出格式,可以有 xml, json, php, phps

  • hl: 是否高亮,设置高亮Field,设置格式前缀和后缀

3. SolrJ操作Solr

3.1 介绍

solrJ是一个用来访问solr的java客户端,提供了索引和搜索的方法(将一些常用的命令封装进去了),通过solrJ提供的API 接口来操作solr服务。

<dependency> 
    <groupId>org.apache.solr</groupId> 
    <artifactId>solr-solrj</artifactId> 
    <version>7.7.3</version> 
</dependency>

3.2 基本操作

见示例代码: solrj-demo

3.3 高级查询

见示例代码: solrj-demo

  • 查询参数

    查询参数 与 solr管理界面的条件一致 
    	q - 查询字符串,如果查询所有*:* (id:1) 
    	fq - (filter query)过虑查询,过滤条件,基于查询出来的结果 
    	start - 分页开始 
    	rows - 分页查询数据 
    	sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。 示例:(score desc, price asc)表示先 “score” 降序, 再 “price” 升序,默认是相关性降序。 
    	wt - (writer type)指定输出格式,可以有 xml, json, php, phps。 
    	fl表示索引显示那些field( *表示所有field,如果想查询指定字段用逗号或空格隔开 如:name,price,desc或name price desc 注意:字段是严格区分大小写的 
    	q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或) 
    	hl 是否高亮 ,如hl=true 
    	hl.fl 高亮field ,hl.fl=name,desc 
    	hl.simple.pre 高亮前面的格式 
    	hl.simple.post 高亮后面的格式
    
  • 检索运算符

    1. “:” 指定字段查指定值,如返回所有值*:*
    2. “?” 表示单个任意字符的通配 
    3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
    4. “~” 表示模糊检索 如:so~N 匹配 N 个编辑距离以内的内容。 
    5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10 
    6. “^” 控制相关度检索,如检索solr apache,同时希望去让”slor”的相关度更加好,那么在其后加 上”^”符号和增量值,即solr^4 apache 
    7. 布尔操作符AND、||
    8. 布尔操作符OR、&& 
    9. 布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询) 
    10. “+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在 
    11. [ ] 包含范围检索,如检索某时间段记录,包含头尾,price:[120 TO 600]
    

4. Springboot访问solr

见示例代码: springboot-demo

注意:需要将 managed-schema 里以下域修改一下类型,String字段改成string,不然写入后,查询出来,getBean(class z)会转换异常

<field name="desc" type="text_general"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="name" type="text_general"/>
<field name="price" type="pdoubles"/>

修改为:
<field name="desc" type="string"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="name" type="string"/>
<field name="price" type="pdouble"/>
#Solr# #搜索引擎#
QQ扫一扫交流

标题:Solr数据操作

作者:古道长亭

声明: 欢迎加群交流!

如有帮助,欢迎多多交流 ^_^

微信打赏

支付宝打赏

Solr性能优化
Solr配置详解
  • 文章目录
  • 站点概览
古道长亭

古道长亭

Always remember that your present situation is not your final destination. The best is yet to come.

226 日志
57 分类
104 标签
GitHub Gitee
友情链接
  • 古道长亭的BOOK
  • JAVA学习
标签云
  • Mysql
  • 搜索引擎
  • Mybatis
  • 容器
  • 架构
  • 消息队列
  • Flink
  • Sharding sphere
  • 流处理
  • 缓存
  • 1. 使用dataimport导入数据库数据
  • 2. 查询基本语法
  • 3. SolrJ操作Solr
    • 3.1 介绍
    • 3.2 基本操作
    • 3.3 高级查询
  • 4. Springboot访问solr
© 2019 - 2024 京ICP备19012088号-1
0%