Schema API

  Schema API允许使用REST API每个集合(collection)(或者单机solr的核(core)).包含了定义字段类型,字段,动态字段,复制字段等.在solr4.2或4.3中,仅仅允许Get(只读)访问,在solr4.4上,新的字段和复制字段可以直接加入到schema中.未来,solr版本将会扩展这个功能,以允许更多的schema元素可以被更新.

  使用API启动schema修改,请参考Managed Schema Definition in SolrConfig.

  对于所有的调用,这个API支持两种模式:JSON和XML.当请求了完整的Schema之后,会有另外一种仿照schema.xml文件本身的XML模式.

  API的基本地址:http://<host>:<port>/<context-path>,其中<context-path>通常都是solr.

1.API入口点

  2.检索Schema信息

    2.1检索完成的schema

    2.2列出字段

    2.3列出指定的字段

    2.4列出动态字段

    2.5列出指定的动态字段规则

    2.6列出字段类型

    2.7列出指定的字段类型

    2.8列出复制字段

    2.9显示schema名字

    2.10显示schema版本

    2.11列出唯一主键Unique

    2.12显示全局Similarity

    2.13获取默认的查询操作

  3.修改schema

    3.1创建新的schema字段

    3.2创建一个新的schema字段

    3.3 直接创建新的复制字段

  4.相关主题

1.API入口点 

    /collection/schema:检索整个schema.

/collection/schema/fields:检索所有定义的字段的信息,或者使用copyField直接常见新的字段.

/collection/schema/fields/name:检索一个字段的信息,或者使用copyField命令直接创建一个新的命名的字段.

/collection/schema/dynamicfields:检索动态字段规则信息

/collection/schema/dynamicfields/name:检索一个命名的动态字段信息

/collection/schema/fieldtypes:检索字段类型

/collection/schema/fieldtypes/name:检索一个命名的字段类型

/collection/schema/copyfields:检索复制字段或者创建新的复制字段

/collection/schema/name:取回schema的名称

/collection/schema/version:取回schema的版本

/collection/schema/uniquekey:取回定义的uniquekey

/collection/schema/similarity:取回全局的similarity

/collection/schema/solrqueryparser/defaultoperator:检索默认操作

  2.检索Schema信息

    2.1检索完成的schema

      GET  /collection/schema

      输入

      路径参数

        collection:collection或者core的名称

      查询参数

        查询参数可以放在API请求的问号"?"之后.

Key Type Required Default Description
wt string No json

定义响应格式,选项可以是json,xml或者是schema.xml.

如果没有指定,JSON将会被默认返回

     输出

        输出内容将包含所有的字段,字段类型,动态字段,复制字段.同样也包含schema名称和版本号.

      例子

        输入

        采用json方式取回全部的schema

curl http://localhost:8983/solr/collection1/schema?wt=json

        采用xml方式取回全部的schema

curl http://localhost:8983/solr/collection1/schema?wt=xml

        采用 "schema.xml"方式取回全部的schema    

curl http://localhost:8983/solr/collection1/schema?wt=schema.xml

        输出

        JSON例子:      

{
"responseHeader":{
"status":0,
"QTime":5},
"schema":{
"name":"example",
"version":1.5,
"uniqueKey":"id",
"fieldTypes":[{
"name":"alphaOnlySort",
"class":"solr.TextField",
"sortMissingLast":true,
"omitNorms":true,
"analyzer":{
"tokenizer":{
"class":"solr.KeywordTokenizerFactory"},
"filters":[{
"class":"solr.LowerCaseFilterFactory"},
{
"class":"solr.TrimFilterFactory"},
{
"class":"solr.PatternReplaceFilterFactory",
"replace":"all",
"replacement":"",
"pattern":"([^a-z])"}]}},
...
"fields":[{
"name":"_version_",
"type":"long",
"indexed":true,
"stored":true},
{
"name":"author",
"type":"text_general",
"indexed":true,
"stored":true},
{
"name":"cat",
"type":"string",
"multiValued":true,
"indexed":true,
"stored":true},
...
"copyFields":[{
"source":"author",
"dest":"text"},
{
"source":"cat",
"dest":"text"},
{
"source":"content",
"dest":"text"},
...
{
"source":"author",
"dest":"author_s"}]}}

        XML例子: 

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5</int>
</lst>
<lst name="schema">
<str name="name">example</str>
<float name="version">1.5</float>
<str name="uniqueKey">id</str>
<arr name="fieldTypes">
<lst>
<str name="name">alphaOnlySort</str>
<str name="class">solr.TextField</str>
<bool name="sortMissingLast">true</bool>
<bool name="omitNorms">true</bool>
<lst name="analyzer">
<lst name="tokenizer">
<str name="class">solr.KeywordTokenizerFactory</str>
</lst>
<arr name="filters">
<lst>
<str name="class">solr.LowerCaseFilterFactory</str>
</lst>
<lst>
<str name="class">solr.TrimFilterFactory</str>
</lst>
<lst>
<str name="class">solr.PatternReplaceFilterFactory</str>
<str name="replace">all</str>
<str name="replacement" />
<str name="pattern">([^a-z])</str>
</lst>
</arr>
</lst>
</lst>
...
<lst>
<str name="source">author</str>
<str name="dest">author_s</str>
</lst>
</arr>
</lst>
</response>

        schema.xml格式例子

<?xml version="1.0" encoding="UTF-8"?>
<schema name="example" version="1.5">
<uniqueKey>id</uniqueKey>
<types>
<fieldType name="alphaOnlySort" class="solr.TextField"
sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" replace="all"
replacement="" pattern="([^a-z])" />
</analyzer>
</fieldType>
...
<copyField source="url" dest="text" />
<copyField source="price" dest="price_c" />
<copyField source="author" dest="author_s" />
</schema>

    2.2列出字段

      GET  /collection/schema/fields

     输入

      路径参数

        collection:collection或者core的名称

      查询参数

Key Type Required Default Description
wt string No json

定义响应格式,选项可以是json,xml或者是schema.xml.

如果没有指定,JSON将会被默认返回

       输出

      取回所有字段的列表

curl http://localhost:8983/solr/collection1/schema/fields?wt=json

          结果

{
"fields": [
{
"indexed": true,
"name": "_version_",
"stored": true,
"type": "long"
},
{
"indexed": true,
"name": "author",
"stored": true,
"type": "text_general"
},
{
"indexed": true,
"multiValued": true,
"name": "cat",
"stored": true,
"type": "string"
},
...
],
"responseHeader": {
"QTime": 1,
"status": 0
}
}

      2.3列出指定的字段

      GET /collection/schema/fields/fieldname

      输入

        路径参数:

          collection:集合或核的名称

          filedname:指定字段名称

        查询参数:

         查询参数可以加入到request请求问号?之后.

Key Type Required Default Description
wt string No json

定义响应格式,选项可以是json,xml或者是schema.xml.

如果没有指定,JSON将会被默认返回

    2.4列出动态字段

    2.5列出指定的动态字段规则

    2.6列出字段类型

    2.7列出指定的字段类型

    2.8列出复制字段

    2.9显示schema名字

    2.10显示schema版本

    2.11列出唯一主键Unique

    2.12显示全局Similarity

    2.13获取默认的查询操作

  3.修改schema

    3.1创建新的schema字段

    3.2创建一个新的schema字段

    3.3 直接创建新的复制字段

  4.相关主题

  

1.4.7 Schema API的更多相关文章

  1. Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)

    一.Schema介绍 1. Schema 是什么? Schema:模式,是集合/内核中字段的定义,让solr知道集合/内核包含哪些字段.字段的数据类型.字段该索引存储. 2. Schema 的定义方式 ...

  2. 1.4 Documents,Fields和Schema设计--目录

    1.4.1.Documents,Fields和Schema概述 1.4.2 solr字段类型 1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性 1.4.2 solr字段类型 ...

  3. Rest API

    一.前言 在软件行业快速发展的今天,传统的软件授权已经不能足以满足一个IT类的公司的发展.虽然在大部分公司里,它还是现金池的直接源头.但是在可遇见的未来,受摩尔根理论的失效.物联网的发展等影响,应用的 ...

  4. GoldenGate 12.3 MA架构介绍系列(4)–Restful API介绍

    OGG 12.3 MA中最大的变化就是使用了restful api,在前面介绍的各个服务模块,其实就是引用restful api开发而来,这些API同时也提供对外的集成接口,详细接口可参考: http ...

  5. Solr特性:Schemaless Mode(自动往Schema中添加field)

    WiKi:https://cwiki.apache.org/confluence/display/solr/Schemaless+Mode 介绍: Schemaless Mode is a set o ...

  6. REST API 安全设计

    REST API 安全设计 2017年04月27日 18:34:27 阅读数:1699   Rest API 的那些事儿 作者/ asterisk 在软件行业快速发展的今天,传统的软件授权已经不能足以 ...

  7. 【solr】schemaFactory配置相关schema.xml

    schemaFactory配置相关schema.xml  关于schemaFactory的配置困扰我半天啦,下面来总结一下. 话说,好像是从5.0以后就已经没有schema.xml啦,这是由于Solr ...

  8. Tastypie 学习笔记

    Tastypie是什么? 运行于Python环境中的 Django web服务器下的 Restful 风格API接口  (python 类库) 1.安装下面环境或者依赖包到python库(安装过程类似 ...

  9. Solr官方文档翻译-About & Getting Started

    关于(About) 官方文档介绍了所有的Apache Solr实现的重要特性和功能.它是免费的,可以到http://lucene.apache.org/solr/下载. 为了更加的深入和广泛,设计成一 ...

随机推荐

  1. MYSQL数据库重点:自定义函数、存储过程、触发器、事件、视图

    一.自定义函数 mysql自定义函数就是实现程序员需要sql逻辑处理,参数是IN参数,含有RETURNS字句用来指定函数的返回类型,而且函数体必须包含一个RETURN value语句. 语法: 创建: ...

  2. C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)

    C# code namespace UDPServer { class Program { static void Main(string[] args) { int recv; byte[] dat ...

  3. C++11能用智能指针

    [C++11能用智能指针] shared_ptr 是一引用计数 (reference-counted) 指针,其行为与一般 C++ 指针即为相似.在 TR1 的实现中,缺少了一些一般指针所拥有的特色, ...

  4. class dict

    class dict(object): """ dict() -> new empty dictionary dict(mapping) -> new dic ...

  5. HDU4289Control(最大流)

    看了这道题,然后重新开始练习自己的刚敲不久的网络流,发现还是难以一遍敲得完整啊,,,,, 调了...遍,改了...遍,测了...遍,交了,,,遍,总算是A了,,不简单啊 然后试着用了其他两种算法EK和 ...

  6. HDU1151Air Raid(二分图的最大匹配)

    题目大意: 有一个城镇,它的所有街道都是单行的,并且每条街道都是和两个路口相连.同时已知街道不会形成回路. 你的任务是编写程序求最小数量的伞兵,这些伞兵可以访问(visit)所有的路口.

  7. UVaLive 6602 Counting Lattice Squares (找规律)

    题意:给定一个n*m的矩阵,问你里面有几面积为奇数的正方形. 析:首先能知道的是,大的矩阵是包括小的矩阵的,而且面积为奇数,我们只要考虑恰好在边界上的正方形即可,画几个看看就知道了,如果是3*3的有3 ...

  8. oracle创建自增长列

    --创建一个新表 /*create table students(stu_id number,stu_name varchar2(20),stu_email varchar2(40),primary ...

  9. mongo常用命令

    1.由于mongo没有关系型数据库常用,一些基础的命令容易忘记 db.table.update( { "_id" : xxx } , { $set : { "field1 ...

  10. 关于表格中td自动换行做法

    两个条件 一是给table中第一个tr(也就是表头)下的td或者th宽度,代码如下 而是让文字碰到边界自动换行 css属性 style="word-wrap:break-word;word- ...