検索

14.2.4. ブリッジ

download PDF
エンティティーの基本的なマッピングを検討する際に、最も重要なファクトは無視されていました。Lucene では、すべてのインデックスフィールドは文字列として表現する必要があります。@Field アノテーションが付けられたエンティティープロパティーはすべて、インデックス化される文字列に変換する必要があります。これまでに言及していない理由は、Hibernate Search のほとんどのプロパティーでは、組み込みブリッジのセットにより翻訳ジョブが実行されるためです。ただし、場合によっては、翻訳プロセスをより細かく制御する必要があります。

14.2.4.1. ビルトインブリッジ

Hibernate Search には、Java プロパティータイプとその完全なテキスト表現間の組み込みブリッジのセットがバンドルされています。
null
デフォルトごとnull要素はインデックス付けされません。Lucene は null 要素をサポートしません。ただし、状況によっては、null 値を表すカスタムトークンを追加すると便利です。詳細は、「@Field」 を参照してください。
java.lang.String
文字列はそのままインデックス付けされます
short、Short、integer、Integer、long、Long、float、Float、double、Double、BigInteger、BigDecimal
数値は文字列表現に変換されます。数値は Lucene (範囲指定のクエリーで使用される) によって追加されず、パディングする必要があることに注意してください。
注記
Range クエリーの使用には欠点があります。別の方法は、結果クエリーを適切な範囲に対してフィルターするフィルタークエリーを使用することです。
Hibernate Search は、で説明されているように、カスタム StringBridge の使用もサポートします。「カスタムブリッジ」
java.util.Date
日付は yyyyMMddHHmmssSSS として GMT 時間 (EST 2006 年 11 月 7 日 4:03 PM 12 秒の場合は 200611072203012) として保存されます。内部形式を気にする必要はありません。TermRangeQuery を使用する場合は、グリニッジ標準時 (GMT) で日付を示す必要があることを把握しておくことが重要です。
通常は、ミリ秒単位までの日付を保存する必要はありません。@DateBridge は、インデックス に保存する適切な分解能を定義します ((@DateBridge(resolution=Resolution.DAY))。日付のパターンは、それに応じて切り捨てられます。
@Entity 
@Indexed
public class Meeting {
    @Field(analyze=Analyze.NO)
    @DateBridge(resolution=Resolution.MINUTE)
    private Date date;
    ...
警告
分解能が MILLISECOND 未満の日付は、@DocumentId にはできません。
重要
デフォルトの Date ブリッジは Lucene の DateTools を使用して、String との相互互換を行います。これは、すべての日付が GMT 時間で表されることを意味します。固定タイムゾーンに日付を保存する必要がある場合は、カスタムの日付ブリッジを実装する必要があります。日付のインデックス作成および検索に関するアプリケーションの要件を理解している。
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 は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.