企业级搜索应用服务器Solr4.10.4部署开发详解(2)- Solr使用-创建集合表、存储、查询

原创 2015年07月08日 14:14:52

 Solr使用-创建集合表、存储、查询

上一章我们讲到了Solr的安装和部署,最后的结果是能看到Solr服务器启动状态,如果我们要使用Solr进行开发,还需要在Solr上创建数据集合,然后使用数据集合存储我们业务数据,然后进行查询、排序等等。再下一步就是使用Java环境进行开发了。

(1)创建Solr数据集合

       1: 添加数据集合文件

        如果你看到了solr主界面,说明你完成了第一步。这一步只能说明你打好了solr的基础,下一步将是见证奇迹的时刻。

       首先进入tomcat/webapps/solr/solr/目录,然后创建一个test目录,在test目录中再创建conf目录,

        可以从solr源码获取elevate.xml、schema.xml、solrconfig.xml三个文件,拷贝到conf目录下,也可以通过下面的方式配置。

       2. 增加数据集合

       数据集合文件放置完成后,重启tomcat,然后创建名称为test的数据集合。如果提示Add Core错误,很重要的原因是配置目录错误或者冲突。添加成功后,会在侧面出现一个test的选项卡,在【Core Selecter】下拉菜单中可以找到test选项,选择Documents,可以向数据集合中添加JSON、XML、CVS、FILE等文件格式的数据,但是如果我们直接点击添加,会出现错误,因为demo中【{"id":"change.me","title":"change.me"}】这个数据内容不符合conf中schema.xml的格式要求。


       3. schema.xml格式要求

            回顾我们test目录,在conf目录下,有很多文件,其中最关键的就是    【schema.xml】,这个是test这个数据集合能存储数据类型和格式的定义文件,如果不符合,存储就会失败,我们来看看【schema.xml】的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.5">
	<field name="_version_" type="long" indexed="true" stored="true"/>
	<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
	<field name="name" type="string" indexed="true" stored="true" />
	<field name="price" type="double" indexed="true" stored="true" />
	<field name="display_picture" type="string" indexed="true" stored="true" />
	<field name="release_time" type="long" indexed="true" stored="true" />
	<field name="release_state" type="int" indexed="true" stored="true" />
	<field name="deals" type="long" indexed="true" stored="true" />
	<field name="hits" type="long" indexed="true" stored="true" />

	<uniqueKey>id</uniqueKey>
	<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
	<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" />
	<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0" />
	<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0" />
	<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0" />
	<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0" />
	<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0" />

</schema>

<schema>标签下的<field>标签表示字段类型,其中_version_是系统自带的,类似于HBase中的时间字段。

<uniqueKey>标签定义那个字段是这个数据集合的主键,存储时是唯一的,类似Oralce、MySQL的主键,区别就是重复存储时,会覆盖,而Oracle、MySQL会报错。

<fieldType>标签是定义<field>标签 【type】字段数据类型的,上面的定义类型基本上都包括了java的基础类型,另外这个字段还可以用来定义中文分词器,这个是后话了,现在先了解一下。

所有出现在JSON、XML中提交的数据,字段名必须在这个里面能找到,刚才我们手动提交的那个demo中,由于【title】字段在这个schema中没有定义,所以存储失败了。

      4. 数据存储。

           根据上面的说明,我们可以按照要求进行数据存储了。提交存储数据时,主键是必选的,_version_字段不用填,系统会自动带上。也就是说,可以只提交主键一个字段,或者全部都提交,或者部分提交,没有硬性要求,但是不能没有主键字段。例如:{"id":"1","name":"test1","price":10000}; 返回状态中会返回状态和内容,responseHeader中的status就是返回状态,QTime表示耗时,单位毫秒。


        5. 数据查询(检索)

           在【Query】菜单中,可以进行数据查询操作,主要是使用Solr的查询规矩语句就能将数据检索出来了。支持全量查询【*:*】和部分查询【name:test1】以及多条件查询【id:1 AND name:test1】,更详细的介绍可以百度。查询检索这个方式与关系型数据库有区别,但是很多思路是一样的,不过大数据量下,Solr支持复杂查询以及中文分词后查询的性能和效率会比传统关系型数据高很多。具体怎么玩,我们一步步来。

 





版权声明:本文为博主原创文章,未经博主允许不得转载。

全文索引----创建多表solr索引

我们在使用solr作为索引服务器时,通常会将多个表的字段作为联合索引,对多个表之间快速的数据查询也是solr服务器高效率的体现,这篇文章将介绍如何基于多个数据表创建索引:一:没有关联的数据表之间创建索...
  • erhei0317
  • erhei0317
  • 2016年09月24日 21:38
  • 2122

Solr 6.0 学习(二)创建core并插入索引

首先搭建solr环境,如:solr6.0学习(一)环境搭建 修改各种配置文件。 1、修改solrhome下的solr.xml文件 注解掉zookeeper搭建集群配置,我们后面会采用master-sl...
  • upxiaofeng
  • upxiaofeng
  • 2016年05月16日 18:13
  • 12064

solr的用法-存储数据到索引库

之前简单的介绍了一下solr的功能已经部署成功以后的用法,现在就讲解一下具体怎么样去通过配置和编写代码实现吧数据存储到索引库 这里以商品为例,一把我们在实际项目中特别是商城经常需要对商品进行全文检索 ...
  • u013239236
  • u013239236
  • 2016年07月01日 22:48
  • 5515

solr中文搜索倒排索引和数据存储结构

作为搜索,本文章原地址:http://blog.csdn.net/chunlei_zhang/article/details/38520315我们传统的方式(正排索引)是从关键点出发,然后再通过关键点...
  • u012142423
  • u012142423
  • 2014年08月14日 23:48
  • 4420

实现Solr索引数据存放到HDFS下

软件准备: 1. apache-tomcat-8.0.26.tar.gz 2.solr-4.5.1.zip 3.Hadoop-2.5.1 运行环境: 虚拟机下的CentOS 7 64位 配置前提条...
  • u011523533
  • u011523533
  • 2015年09月24日 13:50
  • 3904

solr入门之创建solrcloud的collection索引集合

1.上传配置文件到liunx系统中(我们用了堡垒机) 上传方式 rz -e 2.切换到root用户  sudo su - 将你上传的配置文件解压到当前目录后新建一个脚本文件 xxxx.sh内容如...
  • sqh201030412
  • sqh201030412
  • 2016年03月24日 19:51
  • 3639

solr入门之搜索建议的几种实现方式和最终选取实现思路

上篇博客中我简单的讲了下solr自身的suggest模块来实现搜索建议.但是今天研究了下在solr自身的suggest中添加进去拼音来智能推荐时不时很方便.在次从网上搜集和整理思考了下该问题的解决. ...
  • sqh201030412
  • sqh201030412
  • 2016年03月22日 19:19
  • 5414

Solr聚合查询

1  分组查询 1.1     Facet分组 solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索,  Facet是...
  • vtopqx
  • vtopqx
  • 2017年07月25日 21:33
  • 25581

solr查询语法

还以为网上的solr最基础的东西应该很多,结果发现je这边都是一些部署的资料。到没用人给最基本的查询语法。在做查询时十分吃力,自己整理了几个例子来分享下,希望别人不要再走弯路。   首先说下,查询...
  • qq_22929803
  • qq_22929803
  • 2015年07月17日 12:16
  • 4264

企业级搜索应用服务器Solr4.10.4部署开发详解(2)- Solr使用-创建集合表、存储、查询

上一章我们讲到了Solr的安装和部署,最后的结果是能看到Solr服务器启动状态,如果我们要使用Solr进行开发,还需要在Solr上创建数据集合,然后使用数据集合存储我们业务数据,然后进行查询、排序等等...
  • chwshuang
  • chwshuang
  • 2015年07月08日 14:14
  • 1598
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:企业级搜索应用服务器Solr4.10.4部署开发详解(2)- Solr使用-创建集合表、存储、查询
举报原因:
原因补充:

(最多只允许输入30个字)