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) )。 日付のパターンは定義に応じて切り捨てられます。
@Entity 
@Indexed
public class Meeting {
    @Field(index=Index.UN_TOKENIZED)
    @DateBridge(resolution=Resolution.MINUTE)
    private Date date;
    ...
Copy to Clipboard Toggle word wrap

警告

MILLISECOND より低い単位の日付は @DocumentId にはなれません。
java.net.URI、java.net.URL
URI と URL は文字列形式に変換されます。
java.lang.Class
クラスは完全修飾クラス名に変換されます。スレッドコンテキストクラスローダーは、クラスがハイドレートされたときに使用されます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat