Solr是什么

Solr(读作“solar”)是一个开源的搜索平台,它建立在Lucene之上。Lucene 是一个基于 Java 的全文信息检索工具包,是目前最为流行的开源全文检索工具包。 Solr和Lucene现在都由Apache软件基金会进行管理。

安装Solr

下面介绍在Linux下如何进行Solr的安装。

首先下载solr, 可以从这里下载: Solr下载

接着解压缩

~$ unzip -q solr-8.1.0.zip

~$ cd solr-8.1.0/

Solr这就安装好了,很简单,很绿色,很环保~

使用Solr

Solr网站的入门教程介绍了如何使用Solr来建立索引,我们对着教程来做看看

输入下面的命令

solr-8.1.0:$ ./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。我们是做练习,不用管,直接回车。

接着会出现

Ok, let's start up 2 Solr nodes for your example SolrCloud cluster.
Please enter the port for node1 [8983]:

这里让选择第一个节点的端口,默认是8983,如果跟系统的没有冲突,回车选用默认的,否则就修改一个。

接下来是

Please enter the port for node2 [7574]:

这是第二个节点的端口,操作类似第一个节点。默认是7574,如果跟系统的没有冲突,回车选用默认的,否则就修改一个。

一个短暂的启动过程,接下来是

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]

问要把techproducts分成多少个shard(shard是Solr里的概念,可以理解成一个分区),默认就好,直接回车。

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

每个shard要有几个副本,默认就好,直接回车。

Please choose a configuration for the techproducts collection, available options are:
_default or sample_techproducts_configs [_default]

这里需要 注意 一下,要输入sample_techproducts_configs,这个名字对应前面建立的 techproducts 数据集,不能用_default了

回车,等一会,当看到终端出现

...

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

的时候,说明Solr安装好了, 用浏览器访问http://localhost:8983/solr,可以看到

Solr的节点图表

建立索引

solr-8.1.0:$ bin/post -c techproducts example/exampledocs/*

post命令对example/exampledocs/下的文件进行索引

查询

索引建立好后,可以进行查询了

直接使用curl

$ curl "http://localhost:8983/solr/techproducts/select?q=foundation"

得到结果

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":8,
    "params":{
      "q":"foundation"}},
  "response":{"numFound":4,"start":0,"maxScore":2.7879646,"docs":[
      {
        "id":"0553293354",
        "cat":["book"],
        "name":"Foundation",
        "price":7.99,
        "price_c":"7.99,USD",
        "inStock":true,
        "author":"Isaac Asimov",
        "author_s":"Isaac Asimov",
        "series_t":"Foundation Novels",
        "sequence_i":1,
        "genre_s":"scifi",
        "_version_":1574100232473411586,
        "price_c____l_ns":799}]
}}

可以看到,已经成功建立索引并检索数据成功。

删除数据

techproducts是我们刚才建立的数据集,如果不需要了,可以执行下面的命令删除

bin/solr delete -c techproducts

最后停止Solr

bin/solr stop -all

(完)