問題タブ [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.
hibernate - Lucene: 特定のプレフィックスで始まるすべての単語を検索します
特定のプレフィックスで始まる Lucene インデックス内のすべての単語のリストを取得したいと考えています。インデックス内の用語を照会する方法を探していましたが (用語が必要です。用語の元のドキュメントは気にしません)、成功しませんでした。何か案は?
indexing - 休止状態の検索で多対 1 の関係をインデックス化する最良の方法は何ですか?
多対 1 マッピングのエンティティがあります。(製品 1-* 地域、一方向の関連付け)
そのような関係のインデックスを格納する最良の方法は何ですか?
そのため、検索クエリのフィルタリングに簡単に使用できます。
java - Hibernate Searchは、ユーザーのアクセシビリティによって結果を制限できますか?
私はHibernateを使用しています。フリーテキストエンジンを探しています。
調査する前に、あなたの経験が必要です。
アプリケーションにユーザー、ロール、オブジェクトのテーブルがあります。ユーザーが1つ以上のロールに接続されており、ロールが1つ以上のオブジェクトに接続されている場合。
私のフリーテキスト検索では、ユーザーはオブジェクトテーブルで監視できるデータのみにアクセスできます。
Hibernate検索はそれを助けてくれますか?
java - メインスレッドでのHibernateSearch同期実行
Hibernate Searchの同期実行では、呼び出しスレッド以外のスレッドを使用して並列実行しているようです。
呼び出し元のスレッドでHibernateSearchの実行を連続して実行するにはどうすればよいですか?
問題はorg.hibernate.search.backend.impl.lucene.QueueProcessors
クラスにあるようです:
シリアル同期実行は呼び出し元のスレッドで発生し、認証情報などのコンテキスト情報を基になるDirectoryProviderに公開します。
html-entities - owasp antisamy で特殊文字を html エンティティに変換しない方法
Owasp Anti samy と Ebay ポリシー ファイルを使用して、Web サイトへの XSS 攻撃を防ぎます。
また、Hibernate 検索を使用してオブジェクトのインデックスを作成しています。
このコードを使用すると:
ご覧のとおり、すべての文字 "é" は HTML エンティティに相当する " é
"に変換されています。
私のページは UTF-8 なので、この変換は必要ありません。さらに、このテキストを Hibernate Search でインデックス化すると、単語が html エンティティでインデックス化されるため、インデックスで「été」という単語が見つかりません。
アンチサミーが特殊文字を同等の html エンティティに変換しないように強制するにはどうすればよいですか?
ありがとう
PS: 問題が開かれました: http://code.google.com/p/owaspantisamy/issues/detail?id=99
java - JBossAS5.1でのページングされたJPAクエリによるメモリリーク
現在取り組んでいるプロジェクトの1つにHibernateSearchを統合しようとしています。このような取り組みの最初のステップは、かなり単純です。既存のすべてのエンティティにHibernate Search(内部でLuceneを使用)でインデックスを付けます。ドメインモデルのエンティティにマップされたテーブルの多くには、多くのレコード(> 100万)が含まれており、単純なページ付け手法を使用して、それらをより小さな単位に分割しています。ただし、エンティティのインデックス作成中にメモリリークが発生しています。これが私のコードです:
これは単純なMBeanであり、そのinitメソッドはJBossのJMXコンソールを介して手動で実行します。JVisualVMでメソッドの実行を監視すると、すべてのヒープが消費されるまでメモリ使用量が絶えず増加し、多くのガベージコレクションが発生してもメモリが解放されないため、メモリリークが発生したと思われます。コード。ただし、問題のあるコードを見つけることができないため、コードの特定にご協力いただければ幸いです。
問題は確かにインデックス作成自体にはありません。それがなくてもリークが発生するため、ページネーションを正しく行っていないと思います。ただし、私が持っているエンティティへの唯一の参照はリストエンティティであり、 indexUnitを呼び出すループの各反復後に簡単にガベージコレクションされるはずです。
よろしくお願いします。
編集
コードをに変更する
問題を軽減しました。リークはまだありますが、それほど悪くはありません。JPAクエリ自体に何か問題があると思いますが、参照を保持するべきではありませんが、誰が知っていますか。
filter - 休止状態の検索で SQL IN のようなクエリを実行する方法
シミュレーション シナリオは次のとおりです。
コンテンツに「success」が含まれていて、渡された名前のリストに著者が含まれている本を検索します (数千の可能性があります)。
フィルターを調べました: http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filter
休止状態検索のような Seams は、これをネイティブでサポートしていません。
この問題の推奨されるアプローチは何ですか? 私は一人ではないと思います。
ご意見ありがとうございます。
java - この単純な HQL 構文の何が問題になっていますか?
こんにちは、この単純な HQL クエリを実行して、データベースからファイルのリストを取得しようとしています:
しかし、私はこの例外を受け取り続けます:
私の hbm.xml ファイル
java - Lucene のワイルドカード マッチングが化学表記で失敗する (?)
Hibernate Search Annotations@Field(index = Index.TOKENIZED)
の使用 (ほとんどは . を使用して、インデックス付きのすべてのフィールドに対してテキスト検索をセットアップしましたがMultiFieldQueryParser
、これはこれまでのところ正常に機能しています。
索引付けされ、検索可能なフィールドの中には、サンプル値を持つ CompoundName と呼ばれるフィールドがあります。
3-Hydroxyflavone
6,4'-Dihydroxyflavone
これらの値のいずれかを完全に検索すると、関連する複合インスタンスが返されます。ただし、部分的な名前を使用してワイルドカードを導入すると、問題が発生します。
- を検索して
3-Hydroxyflav*
も正しいヒットが得られますが、 - を検索し
6,4'-Dihydroxyflav*
ても何も見つかりません。
今、私はLucene / Hibernate-searchにまったく慣れていないので、この時点でどこを見るべき'
かよくわかりません..2番目のクエリの現在と関係があるのではないかと思いますが、わかりません続行する方法..トークナイザー/アナライザー/クエリパーサーまたは他の何かを完全に調べる必要がありますか?
または、できればマルチフィールド検索の動作を壊さずに、2番目のワイルドカード検索を一致させる方法を教えてもらえますか?
Hibernate-Search 3.1.0.GA と Lucene-core 2.9.3 を使用しています。
私の現在のアプローチを説明するためのいくつかの関連コードビット:
インデックス化された化合物クラスの関連部分:
現在、インデックス付きフィールドを検索する方法:
java - Hibernate Search で同じインデックス ファイルを使用する 2 つのアプリケーション
2 つのアプリケーションでエンティティに同じインデックス ファイルを使用できるかどうかを知りたいです。もっと具体的に言ってみましょう:
ユーザー用のフロントエンドとバックエンド タスク用のアプリケーション (= 管理者インターフェイス) を備えたオンライン アプリケーションがあります。どちらも同じ JBOSS AS で実行されています。両方のアプリケーションが同じデータベースを使用しているため、同じエンティティを使用しています。もちろん、パッケージ名はエンティティの両方のアプリケーションで同じではありません。
これが私たちのユースケースです: ユーザーはフロントエンドを介して検索できる必要があります。ユーザーは、「visible」でタグ付けされた結果のみを表示できます。このタグ付けは管理インターフェイスで行われるため、エンティティがバックエンドで「可視」とタグ付けされるたびに、フロントエンドのインデックスを更新する必要があります。
もちろん、両方のアプリケーションに同じインデックス ルート フォルダーがあります。私のインデックス フォルダには 2 つのインデックス ファイルがあります。
de.xxadmin.model.Product de.xxfrontend.model.Product
Hibernate Search 構成を介してこれを「マージ」する方法は? 私はちょうどドキュメントを介してそれを取得しませんでした...
助けてくれてありがとう!