企业级搜索应用服务器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 Filed域的基础配置

Schema.xml: 1.配置域名及域的类型等信息,Solr域先定义后使用 2.solr core的conf目录:配置域名及域的类型等信息,Solr中的域要先创建后使用 {“id...

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

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

Solr4.7从数据库导数据

实际工程应用中,从数据库导出数据创建索引再常见不过了,现在实验一下从数据库导入数据创建索引。   一、版本说明 Solr版本:4.7.0 数据库:sqlserver2005   二、配置步骤 1、  ...

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

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

Solr高效利用:Solr实现SQL的查询与统计

1.如何高效使用Solr查询功能 ? 2.单个字段分组统计如何实现? 3.IN条件查询有几种方式? 4.多个字段分组统计是否只支持count? Cloudera公司已经推出了基...

如何在Solr中实现多core查询?

博客分类:  基于solr或者elasticsearch提供的多核,多索引,多shard等查询能力,一般都是由lucene提供的多索引查询的功能演化而来的,这个功能在单机版的lu...
  • dotedy
  • dotedy
  • 2015年12月08日 21:25
  • 3178

SOLR对多个(关联)表创建索引

一、无关联多表创建索引 1.1数据库准备   首先在数据库创建一张表,本来有一个tuser表了,我又创建了一个role表,就两三个字段,没什么特殊的,然后在里面随便添加几条数据即可,看一下...

solr join查询

CROSS-DOCUMENT JOINS

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

软件准备: 1. apache-tomcat-8.0.26.tar.gz 2.solr-4.5.1.zip 3.Hadoop-2.5.1 运行环境: 虚拟机下的CentOS 7 64位 配置前提条...

(Slor)java对solr的基本操作

package cn.solr; import java.io.IOException; import org.apache.solr.client.solrj.SolrQuery; import...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:企业级搜索应用服务器Solr4.10.4部署开发详解(2)- Solr使用-创建集合表、存储、查询
举报原因:
原因补充:

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