目前最新版的Solr是7.1.0
有个我还不清楚的地方是,为何5.5.X或者6.6.X版本还在更新,给我的感觉好像每一个大版本都有自己的维护团队。不管了。
首先-系统要求
JDK1.8+
解压Solr
~$ unzip -q solr-7.1..zip ~$ cd solr-7.1./
以SolrCloud模式启动
Unix或MacOS:bin/solr start -e cloud
Windows:bin\solr.cmd start -e cloud
进入目录-启动【Linux仅仅命令不同】
D:\>cd solr-7.1. D:\solr-7.1.>bin\solr.cmd 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? (spec
ify - nodes) []:
这个时候直接回车Enter
Ok, let's start up 2 Solr nodes for your example SolrCloud cluster.
Please enter the port for node1 []:
再Enter
Please enter the port for node2 []:
Enter,后面直接出现这么一大段
Creating Solr home directory D:\solr-7.1.\example\cloud\node1\solr
Cloning D:\solr-7.1.\example\cloud\node1 into
D:\solr-7.1.\example\cloud\node2 Starting up Solr on port using command:
"D:\solr-7.1.0\bin\solr.cmd" start -cloud -p -s "D:\solr-7.1.0\example\clou
d\node1\solr" Waiting up to to see Solr running on port
Started Solr server on port . Happy searching! Starting up Solr on port using command:
"D:\solr-7.1.0\bin\solr.cmd" start -cloud -p -s "D:\solr-7.1.0\example\clou
d\node2\solr" -z localhost:9983 Waiting up to to see Solr running on port
INFO - -- ::54.245; org.apache.solr.client.solrj.impl.ZkClientClust
erStateProvider; Cluster at localhost: ready Now let's create a new collection for indexing documents in your 2-node cluster. Please provide a name for your new collection: [gettingstarted]
Started Solr server on port . Happy searching!
最后一段话:系统提示你创建一个用于索引数据的集合。因为Solr提供一些样本数据,我们不妨与教程一致,在控制台输入techproducts 然后回车。
techproducts
How many shards would you like to split techproducts into? []
然后会让你输入想分割到两个节点上的碎片数量。这里默认为2,就是均匀分割到两个节点上。【我们目前有两个节点,所以2就是平均分。如果我们建立三个节点,那么想要平均分就要输入3】。直接回车。
How many replicas per shard would you like to create? []
你想为每个碎片创建多少副本?【副本是用来故障切换的】这里默认2,回车
Please choose a configuration for the techproducts collection, available options
are:
_default or sample_techproducts_configs [_default]
这里让我们选择一个配置。在本地我也找到了这两个目录
Solr有两个开箱即用的配置文件样本集,称为“configSet”。而索引集合必须有一个“ConfigSet”。它包括两个主要配置文件:
大家注意 sample_techproducts_configs ,它包括了我们定义的索引集合名称:techproducts。这个config包含了我们需要的示例数据。所以在控制台上输入sample_techproducts_configs并回车【可能会慢一点,耐心】:
sample_techproducts_configs
Created collection 'techproducts' with shard(s), replica(s) with config-set
'techproducts' Enabling auto soft-commits with maxTime secs using the Config API POSTing request to Config API: http://localhost:8983/solr/techproducts/config
{"set-property":{"updateHandler.autoSoftCommit.maxTime":""}}
Successfully set-property updateHandler.autoSoftCommit.maxTime to SolrCloud example running, please visit: http://localhost:8983/solr D:\solr-7.1.>
最后来访问:
http://localhost:8983/solr
Solr现在将运行两个“节点”,一个在端口7574上,一个在端口8983上。一个集合techproducts
,两个分片集合,每个都有两个副本。【点击Cloud可见】
到此Solr已经启动啦,可是还没有数据。下面来完成
加入数据
Linux:solr-7.1.:$ bin/post -c techproducts example/exampledocs/* Windows:D:\solr-7.1.0> java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs\*
结果:
D:\solr-7.1.>java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar exa
mple\exampledocs\*
SimplePostTool version 5.0.
Posting files to [base] url http://localhost:8983/solr/techproducts/update...
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,
ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
POSTing file books.csv (text/csv) to [base]
POSTing file books.json (application/json) to [base]/json/docs
POSTing file gb18030-example.xml (application/xml) to [base]
POSTing file hd.xml (application/xml) to [base]
POSTing file ipod_other.xml (application/xml) to [base]
POSTing file ipod_video.xml (application/xml) to [base]
POSTing file manufacturers.xml (application/xml) to [base]
POSTing file mem.xml (application/xml) to [base]
POSTing file money.xml (application/xml) to [base]
POSTing file monitor.xml (application/xml) to [base]
POSTing file monitor2.xml (application/xml) to [base]
POSTing file more_books.jsonl (application/json) to [base]/json/docs
POSTing file mp500.xml (application/xml) to [base]
POSTing file post.jar (application/octet-stream) to [base]/extract
POSTing file sample.html (text/html) to [base]/extract
POSTing file sd500.xml (application/xml) to [base]
POSTing file solr-word.pdf (application/pdf) to [base]/extract
POSTing file solr.xml (application/xml) to [base]
POSTing file test_utf8.sh (application/octet-stream) to [base]/extract
POSTing file utf8-example.xml (application/xml) to [base]
POSTing file vidcard.xml (application/xml) to [base]
files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update.
..
Time spent: ::06.768 D:\solr-7.1.>
基本搜索
访问:http://localhost:8983/solr/#/techproducts/query
点击Execute Query。开始查询,你会发现右边有好几条JSON数据。准确来说:是十条
右上角是发送的URL,你可以点击它,点击试试看
查询参数解释:
修改q为foundation,结果显示有四个命中。
将id放入fl中,再次查询,你会发现显示的字段只有id
我们再改变p为electronics,有14个结果。
这种查询是在所有索引字段查询包括electronics字段的文档,如果想更精确一点,我们看到有一个cat字段,那么将p改为cat:electronics,意思为仅仅cat字段中包含electronics信息的数据。
可以看到,只有12条数据,更加精确了。
下面进行短语搜索
p改为"multiple terms here",短语搜索必需加上双引号。
最后
如果你希望删除此集合
D:\solr-7.1.> bin\solr delete -c techproducts
注意:Linux的路径为/
停止启动的Solr
D:\solr-7.1.> bin\solr stop -all