搜索引擎solr系列---core的创建及数据全量导入

  有关官方配置的步骤,我已经在这篇文章里写了,连接是官方配置solr步骤(一)—solr下载及单节点的启动、配置说明
  大家都知道,solr是首先要将数据建立出索引,而建立成的索引文件就存放到solrHome里,因为一个solr服务器因为需求,将来会生成很多个不同的数据源索引,因此,solrHome里又以core来分别存储不同数据源的索引以及相关数据源链接信息等等。
  solrHome与core的关系是包含关系,即solrHome里包含多个core,core里边才有索引文件。
  如果不知道solrHome如何配置,请参照搜索引擎solr系列—安装步骤

通过搜索引擎solr系列—安装步骤配置完成后,访问页面以下地方是无法打开的,如图:
这里写图片描述

补充一句:如果你能访问以上solr的首页面(有些版本不是admin.html,是index.html),说明你的solrHome是配置正确的。

  通过这一段时间学习,感觉上,solr必须要创建core才能使用,否则,它无法去创建索引、增量索引、删除索引以及查询数据。

创建core的步骤大体如下:

  1. 拷贝core的配置文件。
  2. 配置数据库、引入数据库驱动包。
  3. 配置solr客户端,新建core。

具体步骤如下:

一、新建core文件夹
  首先找到你的solrHome文件夹,solrHome的具体配置方法在搜索引擎solr系列—安装步骤文章中有说明,我的solrHome在D:\Tomcat9Solr\solrHome。


  在该文件夹中创建一个core文件夹,名字随便起,不过,我觉得一个core可能是与一个数据库表对应,所以起名字与数据库表对应,这样更好区分,这个看个人喜好,比如我打算,要为数据库中的solr_test表建立索引,使用solr查询,那就在这里创建一个solrTest文件夹。

二、拷贝core的配置文件

  将D:\Tomcat9Solr\solrHome\configsets\sample_techproducts_configs文件夹中的conf文件夹整个拷贝到上一步中新建的solrTest文件夹中。具体内容如下:
这里写图片描述

三、配置数据库,引入数据库驱动包。
  1、打开上图中的solrconfig.xml文件,在该文件的config标签中添加如下内容:
<requestHandler name="/dataimport"  class="solr.DataImportHandler"> 
     <lst name="defaults"> 
    <str name="config">data-config.xml</str> 
    </lst> 
</requestHandler>
  2、该段内容指定的是一个data-config.xml文件,这个文件是需要自己新建的,这里面就是配置数据库相关的连接,以及数据导入的字段、全量导入索引和增量导入索引等等,还有别的功能,我目前只知道这些。以下配置仅为全量索引导入配置。

  在D:\Tomcat9Solr\solrHome\solrTest\conf文件中,新建一个data-config.xml,与solrconfig.xml文件同级。内容如下:

<dataConfig> 
<!--dataSource标签配置数据库相关的信息-->
<dataSource name = "ds_1" type="JdbcDataSource"   
    driver="oracle.jdbc.driver.OracleDriver"                      url="jdbc:oracle:thin:@//192.168.1.155:1521/ZNXDDB"   
    user="old" password="old"/>  
<document>
<!--以下的dataSource指定上边的dataSource标签中的name属性,并不是必须要加的,除非你配置了多个数据源,这里我是一个数据源,所以,下边的dataSource属性是可以去掉的,另外,pk属性指定的是manage-schema文件中的uniqueKey标签中的值,即主键-->  
<entity name="SolrTest" dataSource="ds_1"  PK="id"
          query="SELECT id,username,yhbz FROM SOLR_TEST">
          <!--以下的字段column属性对应数据库中字段名称,name是对应solr这边配置的名称,注意id,默认名称即为id,表示solr这边一条数据的主键,以下三个是要在solr这边中建立索引的字段,比如数据库中有10个字段,我只需要为3个字段建立索引关系,那这里就写3个就好了
          如果数据库中的主键不是id,比如是objectId,那上边的query需要为它起一个别名为id即可-->
          <field column="id"  name="id" />
          <field column="username"  name="username" />
          <field column="yhbz" name="yhbz" />
    </entity>
  </document>  
</dataConfig>  
对以上配置的解释及注意点:

solr对于索引的建立,有两种,全量索引和增量索引。
  全量索引是将数据库中所有的要建立索引的数据,重新全部建立一遍,对于大量数据来说,这肯定特别消耗时间的一种事。
  增量索引是将数据库中那些新增数据建立起索引,加入到solr查询中。以上我的配置,只是用于全量索引,关于增量索引,有些注意点,我将在下一篇文章中单独说一下我遇到的坑。

  3.因为上边的数据库是用的oracle数据库,因此需要引入oracle数据库驱动包,我是用的是ojdbc6-11.2.0.4.0-atlassian-hosted.jar 这个驱动包,大家可以从网上找一个,将该包放入D:\Tomcat9Solr\webapps\solr\WEB-INF\lib中,如图所示:

这里写图片描述

四、配置managed-schema.xml(早期版本叫schema.xml)文件
  1.该文件配置的内容为solr索引中引入字段的类型设置,与data-config.xml中配置的field标签内容是对应的。在data-config.xml同级目录中找到managed-schema.xml文件打开,添加如下配置:
<!--  name属性为引入字段在solr中的名称。
      type表示类型,solr中会有很多类型,这个在managed-schema中你会看到很多的fieldType标签,都是solr中的类型,具体可以百度看具体的作用。
      indexed我理解的表示是建立索引,true为建立,如果为false,则该字段不能作为条件查询出来,如果不小心设置为false,改正后需要重建索引,特别注意这个。
      stored true表示在solr中显示,如果这里设置为false,将会在solr中查询不到。
      multiValued false表示关联查询字段,这个我不太理解。请再看别人的吧。-->
 <field name="username" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="yhbz" type="string" indexed="true" stored="true" multiValued="false"/>

关于以上配置的解释:
  在managed-schema文件中,已经默认配置了很多可能配置的字段,包括id,如下边的代码块中的配置,所以这里不需要再配置id的内容,因为id为默认的,已经配置了id的相关配置,只需要再增加以上两个即可。

  2.在managed-schema中你还会找到如下两行的标签
<!--请注意,能设为uniqueKey的字段,必须要有required="true"的属性-->
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!--请注意,能设为uniqueKey的字段,必须要有required="true"的属性-->
 <uniqueKey>id</uniqueKey>

这个表示solr中的主键,一般与数据中的主键对应,默认为这个名字。

五、solr客户端配置core,建立索引
  1.配置好前边的步骤,重启tomcat,(下边图中有不重启的方法),访问solr的客户端,我的是http://192.168.1.170:8983/solr/admin.html ,找到如下图的位置:

这里写图片描述

  2.在如图add core面板中,添加core,name和instanceDir都命名为solrTest(与前边配置中在solrHome文件夹中建立的solrTest文件夹名称一致),直接点下边的add core即可,就会发现下边多出一个solrTest的core。

这里写图片描述

  3.如上图,点开core selector,选择solrTest,即会有如下的列表出现。然后如图所示执行全量索引导入操作。

这里写图片描述

  4.如果你的数据量很小,你点击execute后,过一会,点击Refresh Status,会出现如下图的提示

这里写图片描述

  5.这样的情况,就表示你已经导入成功了。然后再点击左侧面板中的Query,直接点击下边的Execute Query即可。右侧就会查询到数据。即表示导入成功。

这里写图片描述

以上即为配置全量导入的core创建过程。其实我觉得solr的core创建好傻,又要复制文件夹,复制配置文件,改好配置,然后再到solr客户端上配置上,这也太繁琐了,但是后来我想了想觉得也有道理,因为毕竟数据库的配置不是想加就加的,加这么多防备,就是让你在后台配置好了,客户端才能创建core,建立索引等等,更加安全一些。下一篇会写增量导入以及它关于不同数据库注意的地方。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值