---
title: "Solr管理スキーマ"
slug: "solr-managed-schemas"
abstract: "Solrにはスキーマをプログラム的に管理するためのRESTful APIがあります。"
---
# Solr管理スキーマ

Solrにはスキーマをプログラム的に管理するためのRESTful APIがあります。スキーマを更新するとコアとコレクションは自動的にリロードされます。

Solrのサンプル設定セットは、従来の手動スキーマ(schema.xmlファイル)の代わりにマネージドスキーマを使用しています。

Sitecoreは管理スキーマをサポートしており、Schema APIを使ってSolrに直接スキーマを入力するツールがあります。

設定セットと管理スキーマを準備するには:

1.  configsetsフォルダからSolr提供された設定例をSOLR\_DIR/server/solrにコピーし、適切なインデックス名に名前を変更します。
    
2.  作成したフォルダ(SOLR\_DIR/server/solr/CORE\_NAME)にcore.propertiesというテキストファイルを作成し、以下の値を指定します。
    
    name=CORE\_NAME
    config=solrconfig.xml
    update.autoCreateFields=false
    dataDir=data
    
3.  ステップ1で作成したフォルダのconfサブフォルダ内のマネージドスキーマファイルを開きます。
    
    :::文字で
    
    1.  <uniqueKey>id</uniqueKey>の値を\_uniqueidに設定します。
    2.  フィールドセクションでは、\_uniqueidに対して次のフィールド構成を追加します: <field name="\_uniqueid" type="string" indexed="true" required="true" stored="true"/>
    3.  変更を保存してください。:::
4.  すべてのコンテンツ検索インデックスについて、ステップ1とステップ2を繰り返してください。
    
    > !注xdbインデックスにはこれをしないでください。 [代わりにこの説明](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/configure-the-solr-search-provider.html "Configure the Solr search provider") を使ってください。
    

**コントロールパネル**からスキーマを入力するには:

1.  Solrを始めましょう。
    
2.  Sitecoreを起動し、**コントロールパネル**に移動します。
    
3.  **インデックスタブ**で**「ソル管理スキーマをポピュレート」**をクリックします:
    
    ![Solr\_managed\_schemas-Picture\_1-rId11-50855303.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/92/platform-administration-and-architecture/images/Solr_managed_schemas-Picture_1-rId11-50855303.png)
    
4.  **Schema Populate**ウィンドウで、埋めたいインデックスを選択してください:
    
    ![Solr\_managed\_schemas-Picture\_2-rId12-1299452201.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/92/platform-administration-and-architecture/images/Solr_managed_schemas-Picture_2-rId12-1299452201.png)
    
5.  「**ポピュレート」**をクリックします。
    

## 管理者ページからスキーマをポピレートします

管理者ページからスキーマを埋めることができます。これは特にPowerShellスクリプトからスキーマを埋める場合に便利です。

それを行うには:

1.  http://YOUR\_INSTANCE/sitecore/admin/ PopulateManagedSchema.aspx?indexes=sitecore\_master\_index|sitecore\_core\_index|sitecore\_web\_indexを呼び出します。indexesクエリパラメータを使って、埋めたいインデックスの名前をパイプ('|')分離リストとして渡します。
2.  HTTPステータスコードを確認して結果を検証します(200は成功です)。

## Sitecore CLIを使ってスキーマを入力する

[Sitecore CLI](https://doc.sitecore.com/xp/en/developers/100/developer-tools/en/sitecore-command-line-interface.html)で利用可能な[インデックスプラグイン](https://doc.sitecore.com/xmc/en/developers/xm-cloud/en/indexing-plugin.html)を使ってスキーマを埋めることができます。

Sitecore CLIを使ってスキーマを埋めるには:

-   ターミナルで sitecore index schema-populate コマンドを実行してください。

> !注詳細については、[CLI indexコマンド](https://doc.sitecore.com/xmc/en/developers/xm-cloud/en/the-cli-index-command.html)を参照してください。このコマンドはCLI 4.0以降から利用可能です。

## スキーマをプログラムで変更する機能を無効にしてください

solrconfig.xmlファイルで<schemaFactory>クラスをClassicIndexSchemaFactoryに設定することで、スキーマをプログラムで変更する機能を無効にできます。詳細については、Sitecore XPの[バージョンに対応している](https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB0227897)SolrバージョンのSchema Factory Definitionドキュメントをご覧ください。

> !注スキーマをプログラムで変更できないと、スキーマファイルを手動で編集しなければなりません。このトピックで説明しているスキーマを自動的に埋め込む方法は機能しません。