yangyongjie

 一、什么是Solr

  Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 使用Solr构建的应用程序非常复杂,可提供高性能。

  总之,Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据

 

  Solr相比关系型数据库(如MySQL)的优势:

    ①:Solr本身也可以看成数据库,(no sql类型),但它比数据库搜索速度更快

    ②:数据库本身不能实现分词效果,而只能使用模糊查询,但是模糊查询非常低效,查询速度比较慢,由于在实际生活中,一般搜索是用的比较多的,这样数据库压力自然就很大,所以我们就让供专业的solr来做搜索功能

        

 

 

二、下载安装

  1、下载 solr-7.7.3.tgz :https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.3/solr-7.7.3.tgz?action=download

  2、解压 solr-7.7.3.tgz ,目录结构如下:

 

 

  3、启动solr

    ./bin/solr start -e cloud

    ①:

      Welcome to the SolrCloud example!

      This interactive session will help you launch a SolrCloud cluster on your local workstation.
      To begin, how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes) [2]:

      按照提示输入运行的节点数,默认的节点数为2,回车

    ②:接着按照提示输入每个节点运行的端口,按照默认的端口即可

      INFO - 2022-03-01 21:45:27.850; org.apache.solr.common.cloud.ConnectionManager; zkClient has connected
      INFO - 2022-03-01 21:45:27.864; org.apache.solr.common.cloud.ZkStateReader; Updated live nodes from ZooKeeper... (0) -> (2)
      INFO - 2022-03-01 21:45:27.879; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready

    请注意,两个 Solr 实例已在两个节点上启动。因为我们是在 SolrCloud 模式下开始的,并且没有定义有关外部 ZooKeeper 集群的任何细节,所以 Solr 启动了自己的 ZooKeeper 并将两个节点都连接到它

    ③:节点启动完成之后,系统会提示创建一个用于索引数据的集合

      Now let\'s create a new collection for indexing documents in your 2-node cluster.
      Please provide a name for your new collection: [gettingstarted]

      输入『techproducts』并回车

    ④:How many shards would you like to split techproducts into? [2]

      询问要将索引分成多少个分片到两个节点上,默认值为2,意味着我们将在两个节点上相对均匀地分割索引,回车

    ⑤:How many replicas per shard would you like to create? [2]

      询问需要创建多少个副本,副本是用于故障转移的索引的副本,默认值为2即可,回车

    ⑥:Please choose a configuration for the techproducts collection, available options are:

_default or sample_techproducts_configs [_default]

      一个集合必须有一个configSet,它至少包括 Solr 的两个主要配置文件:模式文件(命名为managed-schemaor schema.xml)和solrconfig.xml

      使用默认的sample_techproducts_configs即可,回车

    ⑦:创建集合,并启动Solr

Created collection \'techproducts\' with 2 shard(s), 2 replica(s) with config-set \'techproducts\'

Enabling auto soft-commits with maxTime 3 secs using the Config API

POSTing request to Config API: http://localhost:8983/solr/techproducts/config
{"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}}
Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000


SolrCloud example running, please visit: http://localhost:8983/solr 

    ⑧:访问 http://localhost:8983/solr   

 

       Solr 现在将运行两个“节点”,一个在端口 7574 上,一个在端口 8983 上。有一个自动创建techproducts的集合,两个分片,每个分片有两个副本:

 

       

           

 

 

三、搜索

  1、 向techproducts索引中添加数据 ,solr解压的example/exampledocs目录中有多种文档格式的示例数据,使用以下命令将其存在techproducts索引中

    ./bin/post -c techproducts example/exampledocs/*

  2、基本搜索

    实际上 Solr的管理界面是通过URL的方式请求数据的,如:http://localhost:8983/solr/techproducts/select?q=0812521390

    ①:查询语法

参数名 描述
q 查询关键字,例如,q=id:1,默认为q=*:*,类似于sql中的where 1=1
start 结果集第一条记录的偏移位置,用于分页,默认为 0
rows 返回文档的记录数,用于分页,默认为 10
sort 排序,如如id desc 表示按照 “id” 降序。id desc, price asc先按id降序,再按price升序
fl (field list)指定返回字段,多个字段用逗号或空格分隔,默认返回所有字段
wt (writer type)指定输出格式,例如xml、json等
fq (filter query)过滤查询。该参数可将查询的结果限定在某一范围,由于 Solr 会对过滤查询进行缓存,因此它可以显著提升复杂查询的效率
hl 用于设置字段的高亮显示
df (default field)默认的查询字段,一般默认指定
qt (query type) 指定那个类型来处理查询请求,一般不用指定,默认是standard
indent 返回的结果是否缩进,默认关闭,用 indent=true|on 开启,一般调试json,php,phps,ruby输出才有必要用这个参数

    ②:运算符

运算符 说明
指定字段目标值,等同于 SQL 中的 “=” 号,返回所有值 *:*
表示单个任意字符的通配
* 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
~ 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录
AND 表示且,等同于 “&&”
OR 表示或,等同于 “||”
NOT 表示否
() 用于构成子查询
[] 范围查询,包含头尾
{} 范围查询,不包含头尾
+ 存在运算符,表示文档中必须存在 “+” 号后的项
- 不存在运算符,表示文档中不包含 “-” 号后的项

 

 

 

附录:

  Solr官方网站:https://solr.apache.org/

  Solr官方文档:https://solr.apache.org/guide/7_7/about-this-guide.html

 

END.

分类:

技术点:

相关文章:

  • 2021-04-05
  • 2022-12-23
  • 2021-09-14
  • 2021-11-26
  • 2021-11-11
  • 2022-02-10
猜你喜欢
  • 2021-12-30
  • 2021-10-19
  • 2022-12-23
  • 2021-11-11
  • 2021-08-30
  • 2021-11-16
相关资源
相似解决方案