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. Unity3D 200个插件免费分享

    插件清单: 2D_Toolkit_1.51     动画开发插件包 FingerGestures           触摸插件 ORK_Okashi_RPG_Kit       Unity3D角色扮演 ...

  2. 如何通过写一个chrome扩展启动本地程序

    @(编程) [toc] 本文介绍如何利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地程序.本文的环境是windows10,本文的例子是通过点击网页上的一个button,调用本地的wor ...

  3. McAfee Host Intrusion Prevention

    McAfee Host Intrusion Prevention是一款集防火墙功能和HIPS于一身的主动防御和防火墙软件,将其与 McAfee VirusScan Enterprise 8.5/8.7 ...

  4. MSDN上面测试Window的方法(很好用)

    如何:将 Windows 服务作为控制台应用程序运行 向你运行 OnStart 和 OnStop 方法的服务添加一个方法:     internal void TestStartupAndStop(s ...

  5. JQuery与GridView控件结合示例

    JQuery是一种非常强大的客户端JS编程技术,这里不想过多阐述它的相关背景知识,只想简单演示一下如何与asp.net的控件结合开发. 比如,我们要做一个下面如图所示的功能,效果是状态.编号.数字1. ...

  6. FZU 2129 子序列个数 (递推dp)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2129 dp[i]表示前i个数的子序列个数 当a[i]在i以前出现过,dp[i] = dp[i - 1]*2 - ...

  7. log4.net

    1 简介 1.1Log4net的优点:     几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统 ...

  8. 【JUnit】EasyMock用法总结

    使用EasyMock的总体步骤 1.生成Mock接口 IService mockService = EasyMock.createMock("name", IService.cla ...

  9. 升级xcode时更换appid账户

    转自:http://blog.csdn.net/zhuzhihai1988/article/details/39803743 为了免下载安装Xcode,安装时使用了别人提供的Xcode.dmg安装,而 ...

  10. PL/pgSQL学习笔记之四

    http://www.postgresql.org/docs/9.1/static/plpgsql-structure.html 39.2. PL/pgSQL 的结构 PL/pgSQL是一种块式结构的 ...