私はショッピングウェブアプリケーション用のデモンストレーションアプリケーションに取り組んできました。私はバックエンドサーバー上のものを管理するためにSpring + Hibernateを使用しています。今では、アプリケーションのユーザーがGoogleで検索するような製品を検索できるようにするために、私はHibernate Searchが自分のニーズに最も合っているという結論に達しました。しかし、私は、アプリの管理者が複数の属性の検索フィルタを提供することで検索できるようにしたいと考えています。たとえば、 "PRODUCT"テーブルには、id、name、desc、created_dateなどのフィールドがあります。id、name、desc、およびcreated_dateの部分データなどのさまざまな入力を管理者に提供し、の検索結果。 Hibernate Searchは、 "and"、 "should"などの節とクエリを組み合わせることでそれを可能にします。しかし、それを実装するためには、すべての検索可能フィールドに@Fieldアノテーションを付ける必要があります。Hibernate Search追加の検索基準
@Fieldですべての検索可能な属性に注釈を付けるのが賢明か、同じ問題に取り組む他の方法はありますか?
に必要なすべてのフィールドに注釈を付けることをお勧め?注釈を付けるフィールドの量は?アノテーションをクラスに追加する単純な事実は?他に何か? –
私はクエリのパフォーマンスに気を配っています。 「create_user_id」という名前のフィールドがある場合など、すべての列のインデックスを作成しようとすると、ユーザーが全文検索を実行できるようにするため、他のすべてのフィールドとともに休止状態の検索でそのフィールドを索引付けしますパフォーマンス? –
あなたが必要とするすべてのフィールドに注釈を付けるだけです。実際にツールを試して問題を認識するまでは、パフォーマンスについて心配する必要はありません。おそらく時間を無駄にするだけです。 Lucene(Hibernate Searchの背後にあるエンジン)は、すでにかなりの時間を費やして最適化していますので、実際には異種のもの(例:数百または数千フィールド)でない限り、Luceneはこれをうまく処理する必要があります。 –