Solrに含まれるフィールドタイプ

以下の表は、Solrで使用可能で推奨されるフィールドタイプをリストしています。さらに下にあるページには、旧バージョンのSolrから移行する際の非推奨のタイプがすべてリストされています。org.apache.solr.schemaパッケージには、この表にリストされているすべてのクラスが含まれています。

クラス 説明

BBoxField

ドキュメントフィールドごとに1つの長方形(バウンディングボックス)をインデックス付けし、バウンディングボックスを使用して検索できます。詳細については、空間検索セクションを参照してください。

BinaryField

バイナリデータ。

BoolField

trueまたはfalseのいずれかを含みます。先頭の文字が1t、またはTの場合、trueと解釈されます。先頭の文字がそれ以外の値の場合、falseと解釈されます。

CollationField

ソートと範囲クエリのためのUnicode照合をサポートします。ICU4Jを使用できる場合は、ICUCollationFieldの方が適しています。詳細については、Unicode照合セクションを参照してください。

CurrencyFieldType

通貨と為替レートをサポートします。詳細については、通貨と為替レートセクションを参照してください。

DateRangeField

日付範囲のインデックス作成をサポートし、時点の日付インスタンスも含まれます(1ミリ秒の期間)。このフィールドタイプの使用方法の詳細については、日付のフォーマットと日付計算セクションを参照してください。クエリが通常UTCの年/月/日/時などの境界に該当する場合、日付インスタンスの場合でもこのフィールドタイプを使用することを検討してください。

DenseVectorField

float値の高密度ベクトルのインデックス作成をサポートします。詳細については、高密度ベクトル検索セクションを参照してください。

DatePointField

日付フィールド。ミリ秒単位の精度を持つ時点を表し、「Dimensional Points」ベースのデータ構造を使用してエンコードされています。これにより、特定の値または値の範囲を非常に効率的に検索できます。サポートされている構文の詳細については、日付のフォーマットと日付計算セクションを参照してください。単一値フィールドの場合、ソートを有効にするにはdocValues="true"を使用する必要があります。

DoublePointField

倍精度浮動小数点フィールド (64ビット IEEE 浮動小数点)。このクラスは、「Dimensional Points」ベースのデータ構造を使用して倍精度値をエンコードし、特定の値または値の範囲を非常に効率的に検索できます。単一値フィールドの場合、ソートを有効にするにはdocValues="true"を使用する必要があります。

ExternalFileField

ディスク上のファイルから値を取得します。詳細については、外部ファイルとプロセスセクションを参照してください。

EnumFieldType

アルファベット順または数値順で簡単にソートできない値の列挙型セットを定義できます(たとえば、重大度のリストなど)。このフィールドタイプは、フィールド値の適切な順序をリストした設定ファイルを使用します。詳細については、列挙型フィールドセクションを参照してください。

FloatPointField

単精度浮動小数点フィールド (32ビット IEEE 浮動小数点)。このクラスは、「Dimensional Points」ベースのデータ構造を使用して単精度浮動小数点値をエンコードし、特定の値または値の範囲を非常に効率的に検索できます。単一値フィールドの場合、ソートを有効にするにはdocValues="true"を使用する必要があります。

ICUCollationField

ソートおよび範囲クエリのためのUnicode照合をサポートします。詳細については、Unicode照合セクションを参照してください。

IntPointField

整数フィールド (32ビット符号付き整数)。このクラスは、「Dimensional Points」ベースのデータ構造を使用して整数値をエンコードし、特定の値または値の範囲を非常に効率的に検索できます。単一値フィールドの場合、ソートを有効にするにはdocValues="true"を使用する必要があります。

LatLonPointSpatialField

緯度/経度の座標ペア。複数の点を持つ場合は、複数値になる可能性があります。「lat,lon」の順序でコンマ区切りで指定するのが一般的です。詳細については、空間検索セクションを参照してください。

LongPointField

長整数フィールド (64ビット符号付き整数)。このクラスは、「Dimensional Points」ベースのデータ構造を使用してfoo値をエンコードし、特定の値または値の範囲を非常に効率的に検索できます。単一値フィールドの場合、ソートを有効にするにはdocValues="true"を使用する必要があります。

NestPathField

ネストされたドキュメントを扱う場合、拡張情報を格納する特殊なフィールドタイプです。

PointType

単一値のn次元点。緯度経度ではない空間データのソートと、よりまれなユースケースの両方で使用されます。(注:これは「Point」ベースの数値フィールドとは関係ありません)。詳細については、空間検索を参照してください。

PreAnalyzedField

シリアライズされたトークンストリームをSolrに送信し、オプションでフィールドの独立した格納値を指定し、追加のテキスト処理なしでこの情報を格納およびインデックス化する方法を提供します。

PreAnalyzedFieldの設定と使用方法は、PreAnalyzedField タイプセクションに記載されています。

RandomSortField

値を含みません。このフィールドタイプでソートするクエリは、ランダムな順序で結果を返します。この機能を使用するには、動的フィールドを使用してください。

RankField

ドキュメントのランキングを向上させるためのスコアリングファクターを格納するために使用できます。RankQParserPluginと組み合わせて使用します。

RptWithGeometrySpatialField

元のジオメトリも格納するSpatialRecursivePrefixTreeFieldTypeの派生クラスです。詳細および地理空間結果トランスフォーマーとの使用方法については、空間検索を参照してください。

SortableTextField

TextFieldの特殊なバージョンで、分析前の元の文字列の先頭1024文字をソートするためにdocValues="true"を許可(およびデフォルト設定)します。ソートに使用される文字数は、maxCharsForDocValues属性でオーバーライドできます。詳細については、ソートパラメータに関する説明を参照してください。

SpatialRecursivePrefixTreeFieldType

(略してRPT) 緯度コンマ経度の文字列またはWKT形式のその他の形状を受け入れます。詳細については、空間検索を参照してください。

StrField

文字列 (UTF-8エンコード文字列またはUnicode)。文字列は小さなフィールドを対象としており、いかなる方法でもトークン化または分析されません。約32K未満のハードリミットがあります。

TextField

テキスト。通常は複数の単語またはトークンです。通常の使用方法では、TextFieldまたはSortableTextFieldタイプのフィールドのみがアナライザーを指定します。

UUIDField

UUID (Universally Unique Identifier)。NEWの値を渡すと、Solrが新しいUUIDを作成します。

注記:SolrCloudを使用する場合、ほとんどのユーザーにとってNEWのデフォルト値でUUIDFieldインスタンスを設定することはお勧めできません(UUID値がユニークキーフィールドとして設定されている場合は不可能です)。これは、各ドキュメントの各レプリカがユニークなUUID値を取得する結果になるためです。代わりに、ドキュメントの追加時にUUID値を生成するには、UUIDUpdateProcessorFactoryを使用することをお勧めします。

非推奨のフィールドタイプ

すべてのTrie*数値および日付フィールドタイプは、*Pointフィールドタイプに置き換えられました。Pointフィールドタイプは範囲クエリの方が優れています(速度、メモリ、ディスク)。ただし、単純なfield:valueクエリはTrieに比べてパフォーマンスが劣ります。これを承知するか、Trieフィールドを引き続き使用してください。この欠点は、今後のリリースで修正される可能性があります。
クラス 説明

CurrencyField

代わりにCurrencyFieldTypeを使用してください。

EnumField

代わりにEnumFieldTypeを使用してください。

TrieDateField

代わりにDatePointFieldを使用してください。

TrieDoubleField

代わりにDoublePointFieldを使用してください。

TrieFloatField

代わりにFloatPointFieldを使用してください。

TrieIntField

代わりにIntPointFieldを使用してください。

TrieLongField

代わりにLongPointFieldを使用してください。

TrieField

このフィールドは、使用するTrie*フィールドの特定のクラスを定義するtypeパラメータを取ります。代わりに適切なPointフィールドタイプを使用してください。