solr使用一(安装、启动、自定义core、查询、停止、删除及CoreContainer is either not initialize解决办法)

官方教程地址

写在前面:特别推荐Solr的官方入门文档的三个部分,基本上手的部分都讲到了,从基础的查询到词组查询,再到导入数据。特别全面,而且官方文档也指出,此文档是学习Solr的最佳途径。我本人也是在实践中许多问题都是依靠官方文档的指引才解决的。

一、安装

第一种方式:直接下载官方安装包、解压即可

第二种方式(Mac下brew命令安装)

brew install solr

使用brew默认的安装路径在

/usr/local/Cellar/solr/

二、启动

进入solr安装目录下的bin文件夹

cd /usr/local/Cellar/solr/8.5.0/bin/

启动solr

brew services start solr

或者 

./solr start -h localhost -p 8983

如果出现happy searching则代表启动成功,访问localhost:8983,出现下图代表成功 

启动之后的页面

三、创建自定义core

官方提供了几个例子,不需要创建core,如果实际引用中则需要我们自己创建自定义的core

依旧在solr安装目录的bin文件夹下myCore,-c参数代表创建的core

./solr create_core -c myCore

创建成功之后,刷新一下控制台,发现多了一个core

创建成功的core

可以看到默认的存储位置,进入myCore的文件夹下,有两个文件夹conf、data和一个core.properties文件,其中conf文件夹下有两个比较重要的文件solrconfig.xml和managed-schema

1、在manager-scheme中配置对应的实体字段如下:

    <field name="name" type="string" indexed="true" stored="true"/>
    <field name="age" type="plong" indexed="true" stored="true"/>

2、也可以在控制台->myCore->scheme->点击add Field添加

3、还可以通过curl命令添加

提示:关于field的定义、类型说明直接参考定义Field部分

四、向solr中插入数据

1、通过控制台->Documents->将要插入的数据以json格式放到Documents输入框中->点击submit,即可插入数据

2、通过curl命令,插入两条数据,注意这里要加上commit=true,否则solr是不会提交的

curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/customData/update?commit=true' --data-binary '[{"userId":"234232231","name":"dijaa","age":189},{"userId":"378777","name":"oop","age":78}]'

更多关于JSON通过curl插入的例子,见官方文档Uploading Data 部分

五、查询

1、点击控制台的Query即可查出刚才的插入的数据

控制台查询

2、通过curl命令,其中customData是另一个自定义的core

curl "http://localhost:8983/solr/customData/select?q=*:*"

更多solr控制台查询或者命令查询参考查询部分

说明:默认solr会有一个唯一键id,并且是string类型的,默认是数字+数字组成,如:"783723823hhh-2323b23-9"这种。实际业务场景中,基本都会采用分布式ID,基本以Long类型为主,并且每一个实体类的唯一键不一定都是叫id,只需要更改managed-schema文件中的uniqueKey即可,然后重新添加一个新的Field即可,但是solr建议使用string类型来存储唯一键,可以直接把业务的Long类型主键转为string存储即可。

六、删除数据

1、控制台删除

Documents->update->选择XML->执行如下命令删除全部数据

<delete><query>*:*</query></delete>
<commit/>

(如果只想删除特定的数据,把查询条件放到<query>标签之间即可)如:删除userId为38237239392的数据

<delete><query>userId:38237239392</query></delete>
<commit/>

2、curl删除,同样要注意加上commit=true参数,这里的{"delete":"solr里的唯一键"},更多关于JSON数据的操作详见curl更新、插入、删除JSON数据

curl -X -POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/customData/update?commit=true' --data-binary '{"delete":"234232231"}'

七、删除core,-c 后面的参数是core的名字

solr delete -c myCore

八、停止slor、重启solr

solr stop
solr restart

 提示:

当不清楚solr有哪些命令、或者具体命令如何使用,可以进入solr的安装目录下的bin目录,

更多slor命令的帮助可以直接使用(./solr command(具体的命令,不加具体命令则是查看支持的所有命令) -help)

如下所示:
命令使用实例

九、可能遇到的问题

Error Processing the request.CoreContainer is either not initialize

我们实际开发过程中,增加core的时候,一般都是从现有的solr核心中拷贝配置文件,进行修改。一般修改manage-schema文件中的<field>和solrConfig.xml中的<dataDir>和其他一些配置。如果,修改之后,重启solr报这个错。那是因为你忘记改了另外一个core.properties文件。默认的core.properties文件中有这么一项

name=你的core名字

这里如果你copy现有的文件,并且忘记改了你自己新的core的名字,就会在启动的时候报这个错误.

下一篇solr使用二(从MySQL数据库导入数据到solr中、全量更新、增量更新)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值