搜索引起Solr的安装和使用
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-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
(完)