問題タブ [hibernate-search]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Hibernate Search クエリ?
ご挨拶
私のドメインモデルは次のとおりです
「Hibernate Search」を使用して次のようなクエリを実行したい
3 つのクラスはすべて同じフィールド「name」を持っているので、すべてのクラスを再検索するのでしょうか?
「結果」にはすべてのタイプのオブジェクトがありますか?
java - Hibernate Search / Lucene で列の値に依存する行にインデックスを付ける方法は?
いくつかのフィールドの値に基づいていくつかのエンティティにインデックスを付けるために hibernate search/lucene を使用することは可能ですか?
たとえば、次の例を見てみましょう。製品には、値を持つ複数のプロパティがあります。たとえば、プロパティ名は、色、金額、注文日、価格など何でもかまいません...
また、プロパティ COLOR を持つ PRODUCTS のみをインデックスに登録したいのですが、プロパティ SIZE で検索したくはありません。
また、休止状態の検索を使用して製品のインデックスを作成し、特定のプロパティ名 (プロジェクトのフィールドなど) に対してのみクエリを実行することはできますか?
次のようなクエリ: color:blueプロパティ name=color と value=blue を持つすべての製品を返します。
参照ドキュメントからは何も見つかりませんが、一部のフィールドの値に応じてクエリを制限するためにフィルターを使用する必要があるかもしれません!
hibernate - 別のデータベースのインデックスを使用した Hibernate Search
読み取り専用のデータベースがあります (表示のみにアクセスできます) が、検索用にこのデータベースにインデックスを付ける必要があります。このテーブルの DAO レイヤーは、Hibernate+JPA を使用した汎用 DAO アプローチを使用しています。このビューに休止状態の検索を追加して、別のデータベースにインデックスを保存することは可能ですか?
インデックス作成後の機能が失われる可能性があることを承知しています。でも大丈夫です。完全なインデックス作成を手動で行います。
構成: Spring 2.5+Hibernate 3
(または、コンパスまたは lucene を直接使用する必要がありますか?)
助言してください ありがとうロイ
java - HibernateSearch-指定されたスコープで検索
次のクラスがあるとしましょう。(最も重要なものだけが含まれています)
私の基本的なドキュメント検索は次のようになります。
ここで、ドキュメントを検索できるようにしたいのですが、インデックス全体の範囲ではなく、特定のクライアントに属するドキュメントを検索するだけです。私の頭に浮かぶのは、インデックスに関連付けを追加し、検索の適切なフィールドにクライアントIDを追加することだけです。しかし、それは正しくないようです。別の選択肢が必要であり、それが私が求めているものです。
lucene - Hibernate Search Paging + FullTextSearch + Criteria
いくつかの基準で検索しようとしています
そしてそれをページングします
Luceneが基準を考慮せずに全文検索の全結果を返し、その後休止状態検索が基準を適用するため、一部のページが空になっていると思われます(基準によるフィルタリング後)
いくつかの基準を使用してfullTextSearchを実行する適切な方法は何ですか?lucene検索の前に基準を適用することは可能ですか?
または、純粋なLuceneを使用する必要がありますか(その場合、Hibernate Searchのポイントは何ですか?)
前もって感謝します
java - 多くの (90) エンティティ クラスでハングする Hibernate-Search。
アプリケーションに休止状態の検索を使用しています。それはよく構成されており、突然動作しなくなったときまで完全に動作していました。私によると、モデル(Bean)クラスの数が理由です。Hibernate 構成を構築する際に、構成に追加する 90 個のクラスがあります。
休止状態の検索を無効にすると (検索注釈を削除し、AnnotationsConfiguration の代わりに Configuration を使用します)、アプリケーションを起動しようとすると、正常に動作します。
しかし、同じアプリで検索を有効にすると、ハングアップします。デバッグを試みたところ、ハングする正確な場所が見つかりました。
すべてのクラスを AnnotationsConfiguration オブジェクトに追加した後、cfg.buildSessionfactory() と言うと、そのステートメントからは決して出てきません。(私は何時間も待っていました!!!)
また、モデル クラスの数を減らすと (たとえば半分、つまり 50 に)、そのステートメントから出てきて、アプリケーションは正常に動作します。
誰かがなぜこれが起こっているのか教えてもらえますか?? 私の休止状態のバージョンは次のとおりです: hibernate-core-3.3.1.GA.jar hibernate-annotations-3.4.0.GA.jar .jar
また、AnnotationsConfiguration の使用を避ける必要がある場合は、検索イベント リスナーを明示的に構成する必要があることを読みました。必要なすべてのリスナーとそれぞれのクラスを誰でもリストできますか? (Hibernate Search の書籍に記載されている標準的なものを試しましたが、ClassNotFound 例外が発生し、必要なライブラリがすべてクラスパスに含まれています)
これは、私が引っ張ることができた休止状態トレースの最後の数行です。
最後の行が何を示しているのか?(hibernaterecognized ....)最後の行の後、何もせず(トレースもありません)、ただハングします....
java - Hibernate Search での逆検索
ディレクトリでインデックスを作成したデータを検索するために、Hibernate Search (Lucene を使用) を使用しています。正常に動作しますが、逆検索を行う必要があります。逆検索とは、データベースにクエリのリストが保存されていることを意味し、データ オブジェクトが作成されるたびに、これらのクエリのどれがデータ オブジェクトと一致するかを確認する必要があります。ユーザーが作成したクエリとデータ オブジェクトが一致したときにユーザーに警告する必要があります。したがって、作成したばかりのこの単一のデータ オブジェクトにインデックスを付け、リストのどのクエリが結果としてこのオブジェクトを持っているかを確認する必要があります。
メモリ内にインデックスを作成する Lucene MemoryIndex クラスを見たので、リスト内のすべてのクエリに対して次の例のようなことを行うことができます (ただし、クエリの Java リストでの反復はあまり効率的ではありません)。
ここでの問題は、このデータ クラスにはいくつかの Hibernate Search アノテーション @Field、@IndexedEmbedded が含まれていることです。これは、フィールドのインデックス付け方法を示しているため、FullTextEntityManager インスタンスで index() メソッドを呼び出すと、この情報を使用してオブジェクトにインデックスが付けられます。ディレクトリで。この情報を使用してメモリ内でインデックスを作成する同様の方法はありますか?
この逆検索を行うより効率的な方法はありますか?
hibernate - Hibernate-Search: 日付を検索するには?
間の日付を持つレコードを選択するにはどうすればよいですか
- [今 | 現在-x時間]
- [今 | 現在-x日]
- [今 | 今-xヶ月]
- [今 | 現在-x年]
hibernate-search - この単純な検索を行うにはどうすればよいですか?
Hibernate を使用して Web アプリをビルドしています。1 つのページに、5 つの入力がある送信ボタンが 1 つあります。
- フィールド1
- フィールド2
- フィールド3
- フィールド4
- フィールド5
すべての入力が null の場合、単純なクエリを作成します
ただし、null 以外の入力が少なくとも 1 つある場合は、検索クエリを作成する必要があります。たとえば、field1 は null ではありません。
しかし、すべての入力をチェックする必要があり、このことに基づいてクエリ文字列を作成する必要があります。
検索クエリを作成する最もスマートで簡単な方法は何ですか?
lucene - Hibernate Search を使用したカスタム Lucene シャーディング
Hibernate Searchを使用してカスタムのLuceneシャーディング/パーティション化を経験した人はいますか?
Hibernate Searchのドキュメントには、Lucene Sharding について次のように記載されています。
場合によっては、特定のエンティティ タイプのインデックス データを複数の Lucene インデックスに分割 (シャード) する必要があります。デフォルトでは、1 回の検索ですべてのシャードを開く必要があるため、検索が遅くなるため、差し迫った必要がない限り、このソリューションはお勧めしません。つまり、問題が発生するまで実行しないでください:)
Hibernate Search でシャードの 1 つをクエリのターゲットにできるような方法でシャーディングを実装した人はいますか?
この場合、クエリごとに 1 つのシャードのみを対象とする Lucene クエリがあります。