4.2. プロパティ/フィールドのブリッジ
Lucene では、すべてのインデックスフィールドは String として表現する必要があります。このため、
@Field
でアノテートされたすべてのエンティティプロパティは String 形式でインデックス化する必要があります。プロパティのほとんどでは、Hibernate Search がビルトインのブリッジセットで変換作業を行ってくれます。 ただし、 変換プロセスを細かく制御する必要がある場合もあります。
4.2.1. ビルトインのブリッジ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Hibernate Search には Java プロパティタイプとその完全テキスト表現間のビルトインブリッジセットが同梱されます。
- null
- null エレメントはインデックス化されません。 Lucene は null エレメントに対応しないため意味がありません。
- java.lang.String
- String はそのままインデックス化されます。
- short、 Short、 integer、 Integer、 long、 Long、 float、 Float、 double、 Double、 BigInteger、 BigDecimal
- 数値はその文字列表現に変換されます。 Lucene はそのままでは数値を比較できないため (つまり、 対象のクエリ内で使用できない)、 パディイングする必要があります。
注記
Range クエリの使用は議論の余地があり欠点もあるため、 代替となる手段として Filter クエリの使用があります。 これは結果となるクエリを適切な範囲にフィルタします。Hibernate Search はパッディングのメカニズムをサポートします。 - java.util.Date
- 日付は GMT 時間で yyyyMMddHHmmssSSS のように格納されます (2006 年 11 月 7 日の 4:03PM 12 ミリ秒 EST の場合は 200611072203012)。 内部形式は気にする必要はありません。 重要なのは DateRange クエリを使用する場合にその日付が GMT 時間で表現されるということを認識しておくことです。通常、 日付をミリ秒まで格納する必要がありません。
@DateBridge
はインデックスに格納しようとしている適切なリゾリューションを定義します (@DateBridge(resolution=Resolution.DAY)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告
MILLISECOND
より低い単位の日付は@DocumentId
にはなれません。 - java.net.URI、java.net.URL
- URI と URL は文字列形式に変換されます。
- java.lang.Class
- クラスは完全修飾クラス名に変換されます。スレッドコンテキストクラスローダーは、クラスがハイドレートされたときに使用されます。