# 7.3.52. `reindex`

## 7.3.52.1. 概要

バージョン 5.1.0 で追加.

`reindex` コマンドは1つ以上のインデックスカラムを作り直します。

対象オブジェクトにデータベースを指定するとすべてのインデックスカラムを作り直します。

対象オブジェクトにテーブルを指定すると、そのテーブル内のすべてのインデックスカラムを作り直します。

対象オブジェクトにデータカラムを指定すると、そのデータカラム用のすべてのインデックスカラムを作り直します。

対象オブジェクトにインデックスカラムを指定すると、そのインデックスカラムを作り直します。

このコマンドはインデックスカラムが壊れたときに便利です。対象オブジェクトはデータベース、テーブル、カラムのどれかです。

注釈

`reindex` コマンドを実行している間は対象インデックスカラムを使うことはできません。もし、複数のプロセスから同じデータベースを使っている場合、 `reindex` を実行したプロセス以外のすべてのプロセスはデータベースを開き直すべきです。データベースを開き直すには database_unmap を使えます。

## 7.3.52.2. 構文

このコマンドの引数は1つで省略できます:

    reindex [target_name=null]

`target_name` パラメーターを省略した場合は対象オブジェクトはデータベースになります。これは、データベース中のすべてのインデックスカラムを作りなおすという意味です。

## 7.3.52.3. 使い方

以下はデータベースの中のすべてのインデックスカラムを作り直す例です。

実行例:

    reindex
    # [[0, 1337566253.89858, 0.000355720520019531], true]

以下は `Lexicon` テーブルの中のすべてのインデックスカラム（ `Lexicon.entry_key` と `Lexicon.entry_body` ）を作り直す例です。

実行例:

    table_create Entry TABLE_HASH_KEY ShortText
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Entry body COLUMN_SCALAR Text
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    table_create Lexicon TABLE_PAT_KEY ShortText \
      --default_tokenizer TokenBigram \
      --normalizer NormalizerAuto
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Lexicon entry_key COLUMN_INDEX|WITH_POSITION \
      Entry _key
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Lexicon entry_body COLUMN_INDEX|WITH_POSITION \
      Entry body
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    reindex Lexicon
    # [[0, 1337566253.89858, 0.000355720520019531], true]

以下は `Site.title` データカラムのすべてのインデックスカラム（ `BigramLexicon.site_title` と `RegexpLexicon.site_title` ）を作り直す例です。

実行例:

    table_create Site TABLE_HASH_KEY ShortText
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Site title COLUMN_SCALAR ShortText
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    table_create BigramLexicon TABLE_PAT_KEY ShortText \
      --default_tokenizer TokenBigram \
      --normalizer NormalizerAuto
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create BigramLexicon site_title COLUMN_INDEX|WITH_POSITION \
      Site title
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    table_create RegexpLexicon TABLE_PAT_KEY ShortText \
      --default_tokenizer TokenRegexp \
      --normalizer NormalizerAuto
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create RegexpLexicon site_title COLUMN_INDEX|WITH_POSITION \
      Site title
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    reindex Site.title
    # [[0, 1337566253.89858, 0.000355720520019531], true]

以下は1つのインデックスカラム（ `Timestamp.index` ）を作り直す例です。

実行例:

    table_create Logs TABLE_NO_KEY
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Logs timestamp COLUMN_SCALAR Time
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    table_create Timestamp TABLE_PAT_KEY Time
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    column_create Timestamp logs_timestamp COLUMN_INDEX  Logs timestamp
    # [[0, 1337566253.89858, 0.000355720520019531], true]
    reindex Timestamp.logs_timestamp
    # [[0, 1337566253.89858, 0.000355720520019531], true]

## 7.3.52.4. 引数

このセクションではすべての引数について説明します。

### 7.3.52.4.1. `target_name`

テーブル名またはカラム名を指定します。

指定しなかったら対象オブジェクトはデータベースになります。

デフォルト値はありません。これは対象オブジェクトはデータベースになるということです。

## 7.3.52.5. 戻り値

`reindex` コマンドは作り直しが成功したかどうかを返します。:

    [HEADER, SUCCEEDED_OR_NOT]

`HEADER`

> `HEADER` については 出力形式 を参照してください。

`SUCCEEDED_OR_NOT`

> コマンドの実行が成功するとtrueを返します。失敗するとエラーとしてfalseを返します。