Solr檢索架構(gòu)信息

2018-11-13 14:48 更新

以下端點(diǎn)允許您閱讀如何定義架構(gòu)。您可以根據(jù)需要獲取 Solr 的整個(gè)架構(gòu),或者僅部分架構(gòu)。

如果要修改架構(gòu),請參閱上一節(jié)修改架構(gòu)。

檢索整個(gè)架構(gòu)

GET /collection/schema

檢索架構(gòu)參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)應(yīng)該在'?'之后添加到 API 請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是 jsonxml 或 schema.xml。如果未指定,則默認(rèn)返回 JSON。

檢索架構(gòu)響應(yīng)

輸出內(nèi)容:輸出將包括所請求格式(JSON 或 XML)的所有字段、字段類型、動態(tài)規(guī)則和復(fù)制字段規(guī)則。架構(gòu)名稱和版本也包括在內(nèi)。

檢索架構(gòu)示例

用 JSON 獲取整個(gè)架構(gòu)。

curl http://localhost:8983/solr/gettingstarted/schema
{
  "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 獲取整個(gè)架構(gòu)。

curl http://localhost:8983/solr/gettingstarted/schema?wt=xml
<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” 格式獲取整個(gè)架構(gòu)。

curl http://localhost:8983/solr/gettingstarted/schema?wt=schema.xml
<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>

列表字段

  • GET /collection/schema/fields
  • GET /collection/schema/fields/fieldname

列表字段參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

fieldname

特定的字段名(如果將請求限制為單個(gè)字段)。

查詢參數(shù)

查詢參數(shù)可以在 '?' 后添加到 API 請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回 JSON。

fl

以逗號或空格分隔的一個(gè)或多個(gè)要返回的字段的列表。如果未指定,所有字段將默認(rèn)返回。

includeDynamic

如果true并且如果fl指定了查詢參數(shù)或者使用了fieldname路徑參數(shù),則匹配的動態(tài)字段被包括在響應(yīng)中并且與該dynamicBase屬性一起標(biāo)識。

如果fl查詢參數(shù)和fieldname路徑參數(shù)均未指定,則includeDynamic查詢參數(shù)將被忽略。

如果false默認(rèn),匹配的動態(tài)字段將不會被返回。

showDefaults

如果true,每個(gè)字段的字段類型的所有默認(rèn)字段屬性都將包含在響應(yīng)中(例如tokenizedfor solr.TextField)。如果false默認(rèn)只包含明確指定的字段屬性。

列表字段響應(yīng)

輸出將包括每個(gè)字段和每個(gè)字段的任何定義的配置。定義的配置可能會因每個(gè)字段而異, 但將最小程度地包括字段名稱、類型 (如果它是索引的) 和存儲的。
如果多值被定義為真或假 (最可能為真), 也將顯示。有關(guān)每個(gè)參數(shù)的詳細(xì)信息, 請參閱定義字段一節(jié)。


輸出將包括每個(gè)字段和每個(gè)字段的任何定義的配置。所定義的配置可能會因每個(gè)字段而異,但最低限度地將包括字段名稱、類型 ,如果是 indexed 和 stored。

如果 multiValued 被定義為真或假(很可能是真的),那么也將被顯示。有關(guān)每個(gè)參數(shù)的更多信息,請參閱定義字段部分。

列表字段示例

獲取所有字段的列表。

curl http://localhost:8983/solr/gettingstarted/schema/fields

下面的示例輸出已被截?cái)?,只顯示幾個(gè)字段。

{
    "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
    }
}

列出動態(tài)字段

  • GET /collection/schema/dynamicfields
  • GET /collection/schema/dynamicfields/name

列出動態(tài)字段參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

name

動態(tài)字段規(guī)則的名稱(如果將請求限制為單個(gè)動態(tài)字段規(guī)則)。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回JSON。

showDefaults

如果true,每個(gè)動態(tài)字段的字段類型的所有默認(rèn)字段屬性都將包含在響應(yīng)中(例如tokenizedfor solr.TextField)。如果false默認(rèn)只包含明確指定的字段屬性。

列出動態(tài)字段響應(yīng)

輸出將包括每個(gè)動態(tài)字段規(guī)則和每個(gè)規(guī)則的定義配置。所定義的配置可以為每個(gè)規(guī)則而變化,但將最低限度地包括動態(tài)字段的 name,type,如果是 indexed 和 stored。有關(guān)每個(gè)參數(shù)的更多信息,請參閱動態(tài)字段部分。

列出動態(tài)字段示例

獲取所有動態(tài)字段聲明的列表:

curl http://localhost:8983/solr/gettingstarted/schema/dynamicfields

下面的示例輸出已被截?cái)唷?/p>

{
    "dynamicFields": [
        {
            "indexed": true,
            "name": "*_coordinate",
            "stored": false,
            "type": "tdouble"
        },
        {
            "multiValued": true,
            "name": "ignored_*",
            "type": "ignored"
        },
        {
            "name": "random_*",
            "type": "random"
        },
        {
            "indexed": true,
            "multiValued": true,
            "name": "attr_*",
            "stored": true,
            "type": "text_general"
        },
        {
            "indexed": true,
            "multiValued": true,
            "name": "*_txt",
            "stored": true,
            "type": "text_general"
        }
"..."
    ],
    "responseHeader": {
        "QTime": 1,
        "status": 0
    }
}

列出字段類型

  • GET /collection/schema/fieldtypes
  • GET /collection/schema/fieldtypes/name

列出字段類型參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

name

字段類型的名稱(如果將請求限制為單個(gè)字段類型)。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回JSON。

showDefaults

如果true,每個(gè)動態(tài)字段的字段類型的所有默認(rèn)字段屬性都將包含在響應(yīng)中(例如tokenizedfor solr.TextField)。如果false默認(rèn)只包含明確指定的字段屬性。

列表字段類型響應(yīng)

輸出將包括每個(gè)字段類型和該類型的任何定義的配置。定義的配置可以為每個(gè)類型,但最低限度包括字段類型 name 和 class。如果查詢或索引分析器、標(biāo)記器或過濾器已定義,那么也將顯示其他已定義的參數(shù)。有關(guān)如何配置各種類型的字段的更多信息,請參見 Solr 字段類型一節(jié)。

列出字段類型示例

獲取所有字段類型的列表。

curl http://localhost:8983/solr/gettingstarted/schema/fieldtypes

下面的示例輸出已被截?cái)啵燥@示列表的不同部分的幾個(gè)不同的字段類型。

{
    "fieldTypes": [
        {
            "analyzer": {
                "class": "solr.TokenizerChain",
                "filters": [
                    {
                        "class": "solr.LowerCaseFilterFactory"
                    },
                    {
                        "class": "solr.TrimFilterFactory"
                    },
                    {
                        "class": "solr.PatternReplaceFilterFactory",
                        "pattern": "([^a-z])",
                        "replace": "all",
                        "replacement": ""
                    }
                ],
                "tokenizer": {
                    "class": "solr.KeywordTokenizerFactory"
                }
            },
            "class": "solr.TextField",
            "dynamicFields": [],
            "fields": [],
            "name": "alphaOnlySort",
            "omitNorms": true,
            "sortMissingLast": true
        },
        {
            "class": "solr.FloatPointField",
            "dynamicFields": [
                "*_fs",
                "*_f"
            ],
            "fields": [
                "price",
                "weight"
            ],
            "name": "float",
            "positionIncrementGap": "0",
        }]
}

列表復(fù)制字段

GET /collection/schema/copyfields

列表復(fù)制字段參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回JSON。

source.fl

在響應(yīng)中包含一個(gè)或多個(gè)copyField源字段的逗號或空格分隔列表 - 包含所有其他源字段的copyField指令將被排除在響應(yīng)之外。如果沒有指定,所有copyField-s將被包含在響應(yīng)中。

dest.fl

一個(gè)或多個(gè)copyField目標(biāo)字段的逗號或空格分隔列表,以包含在響應(yīng)中。所有其他dest字段的copyField指令將被排除。如果沒有指定,所有copyField-s將被包含在響應(yīng)中。

列表復(fù)制字段響應(yīng)

輸出將包括在 schema.xml 中定義的每個(gè)復(fù)制字段規(guī)則的 source 和 dest(目的地)。有關(guān)復(fù)制字段的更多信息,請參見復(fù)制字段部分。

列表復(fù)制字段示例

獲取所有 copyField 的列表。

curl http://localhost:8983/solr/gettingstarted/schema/copyfields

下面的示例輸出已被截?cái)酁榍皫讉€(gè)復(fù)制定義。

{
    "copyFields": [
        {
            "dest": "text",
            "source": "author"
        },
        {
            "dest": "text",
            "source": "cat"
        },
        {
            "dest": "text",
            "source": "content"
        },
        {
            "dest": "text",
            "source": "content_type"
        },
    ],
    "responseHeader": {
        "QTime": 3,
        "status": 0
    }
}

顯示架構(gòu)名稱

GET /collection/schema/name

顯示模式參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回JSON。

顯示模式響應(yīng)

輸出將只是給架構(gòu)的名稱。

顯示架構(gòu)示例

獲取架構(gòu)名稱。

curl http://localhost:8983/solr/gettingstarted/schema/name
{
  "responseHeader":{
    "status":0,
    "QTime":1},
  "name":"example"}

顯示架構(gòu)版本

GET /collection/schema/version

顯示架構(gòu)版本參數(shù)

路徑參數(shù)

   collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)可以在 '?' 后添加到 API 請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回 JSON。

顯示架構(gòu)版本響應(yīng)

輸出將只是正在使用的架構(gòu)版本。

顯示架構(gòu)版本示例

獲取架構(gòu)版本

curl http://localhost:8983/solr/gettingstarted/schema/version
{
  "responseHeader":{
    "status":0,
    "QTime":2},
  "version":1.5}

列出 UniqueKey

GET /collection/schema/uniquekey

列出 UniqueKey 參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回 JSON。

列出 UniqueKey 響應(yīng)

輸出將只包含被定義為索引的uniqueKey的字段名稱。

列表 UniqueKey 示例

列出 uniqueKey。

curl http://localhost:8983/solr/gettingstarted/schema/uniquekey
{
  "responseHeader":{
    "status":0,
    "QTime":2},
  "uniqueKey":"id"}

顯示全局相似性

GET /collection/schema/similarity

顯示全局相似性參數(shù)

路徑參數(shù)

collection

集合(或核心)名稱。

查詢參數(shù)

查詢參數(shù)可以在'?'后添加到API請求中。

wt

定義響應(yīng)的格式。選項(xiàng)是jsonxml。如果未指定,則默認(rèn)返回 JSON。

顯示全局相似的回應(yīng)

輸出將包括定義的全局相似性的類名稱(如果有的話)。

顯示全局相似性示例

獲取相似性實(shí)現(xiàn)。

curl http://localhost:8983/solr/gettingstarted/schema/similarity
{
  "responseHeader":{
    "status":0,
    "QTime":1},
  "similarity":{
    "class":"org.apache.solr.search.similarities.DefaultSimilarityFactory"}}

管理資源數(shù)據(jù)

該托管資源 REST API 為任何 Solr 插件提供了一種機(jī)制,用于公開應(yīng)支持 CRUD (創(chuàng)建、讀取、更新、刪除) 操作的資源。根據(jù)架構(gòu)中配置的字段類型和分析器,可能會存在其他的/schema/  REST API 路徑。有關(guān)更多信息和示例,請參閱 "托管資源" 部分。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號