先简单介绍下索引集概念
如图所示:
(1)物理结构
三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。
(2)逻辑结构
索引集合包括两个Shard(shard1、shard2),每个shard由三个core组成,其中一个Leader两个Replication。
Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。
并且用户发起索引请求分别从三个分片上获取,解决高并发问题。
每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。
下面介绍下SolrCloud下的索引集相关 *** 作API。
创建Collection前需要先将配置上传到zookeeper的/solr/configs下。
这里_default是默认的配置文件,SolrCloud搭建启动后默认上传到zookeeper中。
book就是我定义上传的配置文件。下面开始介绍如何上传配置文件。
(1)创建配置文件
从solr的默认配置文件拷贝一份出来
(2)修改配置book/managed-schema
在根节点下面添加字段
(2)修改配置book/schema.xml
这里修改下其中的软硬提交方式。
这里先提个概念“硬提交是关于持久化的,软提交是关于可见性的”。后续再研究下软提交、硬提交的作用。
(3)上传配置到zookeeper
使用solr的zkcli.sh脚本执行上传配置
-zkhost --- zookeeper地址,由于SolrCloud部署时zookeeper地址带有/solr,这里也得加上。
-cmd upconfig --- 上传命令
-confdir --- 本地配置文件目录
-confname --- 上传到zookeeper中的配置名
上传后zookeeper显示如下配置:
向任一一台solr访问下如下http地址:
name:索引集名
numShards:分片数
replicationFactor:副本数
maxShardsPerNode:每台主机最大分片数
collection.configName:索引配置文件名
这里numShards * replicationFactor <= maxShardsPerNode*solr节点数。
访问http地址结果如下:
(1)此时访问solr,就能看到Collection结构、分片、leader和Replication副本,以及副本core所在节点。
(2)在节点所在主机上
SOLR_HOME所在目录下有core目录
SOLR_DATA_HOME目录下有core对应的索引文件目录
(3)查看任一core的自动生成的core.properties,显示core对应的相关信息。
比如修改了managed-schema,那么同样使用zkcli.sh上传,命令如下:
访问结果如下图所示,所有节点都刷新了。
删除collection,只要访问任意一台solr,http地址如下:
这里简单介绍下collection的基本 *** 作:创建、删除、重载配置。后续继续学习下collection其他API功能。
正好在研究Solr可以直接在Solr中Schema
Brower中查看已经建立索引的字段,其实也就是配置的solr的字段映射文件
每次在往Solr中添加、修改数据时,solr都会根据映射配置文件建立索引;所以是先配置schema.xml文件,你修改完后,索引已经建了肯定不会修改,所以需要手动重建索引哦
对数据库中的数据建立倒排索引
1. 启动本机的mysql数据库
我新建test数据库,并在其中新建test表,表有两个字段,ID与Val。ID表示文档编号,Val表示文档内容,这是一个最简单的数据源。
2. 在Solr中配置数据源
在\webapps\solr\conf\multicore\core0\conf\db-data-config.xml中作如下配置:
[html] view plain copy
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="XXXXXX" />
<document name="messages">
<entity name="message" transformer="ClobTransformer" query="select * from test1">
<field column="ID" name="id" />
<field column="Val" name="complex" />
</entity>
</document>
</dataConfig>
此处的complex应与schema中的field name相对应。
3. 重启tomcat,建索引:
4. 测试查询:
我们此处选择返回查询结果列表的形式是JSON
至此,solr的最简单的一次配置完成了。我们可以看出其中的数据源是怎么变为倒排索引,实现快速查询。企业或网站在数据量极大时,可以使用这种方式建立自己的搜索引擎。接下来我们可以让Nutch和Solr配合,做自己的搜索引擎。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)