目前最新版的Solr是7.1.0
有个我还不清楚的地方是,为何5.5.X或者6.6.X版本还在更新,给我的感觉好像每一个大版本都有自己的维护团队。不管了。
首先-系统要求
JDK1.8+
解压Solr
~$ unzip -q solr-7.1.0.zip ~$ cd solr-7.1.0/
以SolrCloud模式启动
Unix或MacOS:bin/solr start -e cloud
Windows:binsolr.cmd start -e cloud
进入目录-启动【Linux仅仅命令不同】
D:>cd solr-7.1.0 D:solr-7.1.0>binsolr.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 1-4 nodes) [2]:
这个时候直接回车Enter
Ok, let's start up 2 Solr nodes for your example SolrCloud cluster. Please enter the port for node1 [8983]:
再Enter
Please enter the port for node2 [7574]:
Enter,后面直接出现这么一大段
Creating Solr home directory D:solr-7.1.0examplecloud ode1solr Cloning D:solr-7.1.0examplecloud ode1 into D:solr-7.1.0examplecloud ode2 Starting up Solr on port 8983 using command: "D:solr-7.1.0insolr.cmd" start -cloud -p 8983 -s "D:solr-7.1.0exampleclou d ode1solr" Waiting up to 30 to see Solr running on port 8983 Started Solr server on port 8983. Happy searching! Starting up Solr on port 7574 using command: "D:solr-7.1.0insolr.cmd" start -cloud -p 7574 -s "D:solr-7.1.0exampleclou d ode2solr" -z localhost:9983 Waiting up to 30 to see Solr running on port 7574 INFO - 2017-11-03 09:37:54.245; org.apache.solr.client.solrj.impl.ZkClientClust erStateProvider; Cluster at localhost:9983 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 7574. Happy searching!
最后一段话:系统提示你创建一个用于索引数据的集合。因为Solr提供一些样本数据,我们不妨与教程一致,在控制台输入techproducts 然后回车。
techproducts How many shards would you like to split techproducts into? [2]
然后会让你输入想分割到两个节点上的碎片数量。这里默认为2,就是均匀分割到两个节点上。【我们目前有两个节点,所以2就是平均分。如果我们建立三个节点,那么想要平均分就要输入3】。直接回车。
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]
这里让我们选择一个配置。在本地我也找到了这两个目录
Solr有两个开箱即用的配置文件样本集,称为“configSet”。而索引集合必须有一个“ConfigSet”。它包括两个主要配置文件:
大家注意 sample_techproducts_configs ,它包括了我们定义的索引集合名称:techproducts。这个config包含了我们需要的示例数据。所以在控制台上输入sample_techproducts_configs并回车【可能会慢一点,耐心】:
sample_techproducts_configs 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 D:solr-7.1.0>
最后来访问:
http://localhost:8983/solr
Solr现在将运行两个“节点”,一个在端口7574上,一个在端口8983上。一个集合techproducts
,两个分片集合,每个都有两个副本。【点击Cloud可见】
到此Solr已经启动啦,可是还没有数据。下面来完成
加入数据
Linux:solr-7.1.0:$ bin/post -c techproducts example/exampledocs/* Windows:D:solr-7.1.0> java -jar -Dc=techproducts -Dauto exampleexampledocspost.jar exampleexampledocs*
结果:
D:solr-7.1.0>java -jar -Dc=techproducts -Dauto exampleexampledocspost.jar exa mpleexampledocs* SimplePostTool version 5.0.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] 21 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update. .. Time spent: 0:00:06.768 D:solr-7.1.0>
基本搜索
访问: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.0> binsolr delete -c techproducts
注意:Linux的路径为/
停止启动的Solr
D:solr-7.1.0> binsolr stop -all