Wicket + Spring + JPA/Hibernateスタックを使用するアプリケーションでは、データベースに保存されたレコードがフィルタリングされるかなり複雑な検索機能を持つInbox/Searchページがあります無数のフィルタリングオプションを使用してこれまでは、JPA Criteria APIを使用してデータベースクエリを作成しましたが、かなり面倒です。私は、フルテキスト検索機能が本当に必要ないのに、私はちょうど(私がそれについて読んだところから)クエリを生成するのが少し楽になるかもしれないと思っても、Hibernate-Searchがこれに適しているのだろうかと思っていましたか?Criteria APIの代わりにComplexQueryを使用するHibernate-Search
2
A
答えて
1
申し訳ありませんが、Hibernate SearchはLucenceに基づいています。 ではなく、他のクエリ言語です。
Luceneは、データベース内のエンティティを検索しません。Luceneインデックス内の属性を検索します。 Hibernate Searchは、データベースからLuceneインデックスにエンティティを接続する機能を追加します。
Hibernate SearchとLuceneは高度な全文検索が必要なときに作成ツールです。しかし、あなたがそれを必要としなければ、それは不自然な仕事(そして問題)の多くです。
したがって、Luceneを使用しない限り、Hibernate Searchはニーズに合っていません。
0
Hibernate Searchの主な使用例は全文検索です。ただし、単純な属性/条件の索引付け/検索にも使用できます。クエリを書くための構文が条件クエリより簡単かどうかは味わいの問題です。 フルテキスト検索機能を使用していない場合は、アプリケーションに追加のステップを追加することを検討する必要があります。 Luceneインデックスに対して検索クエリが実行されます(投影が使用されていなければ、エンティティIDを返します)。一致したエンティティはデータベースからフェッチされます。 一方、Hibernate Searchを使用すると、(可能であれば)いくつかの全文検索機能をいくつかの条件に追加することで、検索を「改善する」ことは簡単です。
検索を使用しているかどうかにかかわらず、キーは検索式または条件式のクエリをプログラムによって作成するフレームワークを作成することです。
関連する問題
- 1. Asana API:認証にAPIキーを使用する代わりに?
- 2. Google Transliterate APIの代わりに使用するもの
- 3. トーストを使用する代わりに
- 4. //使用する代わりに、プロトコル://
- 5. 代わりに使用するフォント
- 6. Railsの代わりにsend_fileの代替ファイルを使用する
- 7. pxにマイナスを使用する代わりに使用する
- 8. Submitの代わりにButtonを使用
- 9. サテライトアセンブリの代わりにリソースファイルを使用
- 10. ptの代わりにemを使用
- 11. expand.gridの代わりにouterを使用
- 12. JqGrid:editurlの代わりに$ .ajax()を使用
- 13. FBMLの代わりに新しいPHP/JS APIを使用するFaceBook UI
- 14. woocommerceをWordpress DBの代わりにAPIで使用する方法
- 15. Android Studio-API 23のSimpleCursorAdapter()の代わりに使用するもの
- 16. 新しいRetrofit 2 APIのRetrofitError.Kind.NETWORKの代わりに使用するもの
- 17. CDIで使用する代替Webフレームワーク(JSFの代わりに)
- 18. Win32 APIの代わりにWinRT
- 19. NotImplementedError:モジュールCrypto.Signature.pkcs1_15を代わりに使用
- 20. Eclipse用のリポジトリを使用する代わりに
- 21. MVC Web APIはXmlSerializerFormatを無視し、DataContractSerliazerを代わりに使用します。
- 22. jqueryで$の代わりにキーワードを使用するには?
- 23. file_get_contentsの代わりにCURLを使用するには?
- 24. Jade in Expressの代わりにアンダースコアテンプレートを使用するには?
- 25. atdの代わりにcrondを使用するには?
- 26. 待機のためにThread.Sleepを使用する代わりに
- 27. iPhoneのピアツーピアにBonjourプロトコルを使用する代わりに
- 28. カンマの代わりにJOINを使用するには?
- 29. PHP - ループの中にインクルードを使用する代わりに
- 30. 頂点にGLfloatの代わりにGLshortを使用する
"Luceneを使わない限り、Hibernate Searchはあなたのニーズに合っていません。" - 私には奇妙な声明のようです。 Luceneを使用するかどうかは、Hibernate Searchが有用かどうかとは関係ありません。重要な点は、Hibernate Coreといっしょにフルテキスト検索が必要かどうかです。この場合、Hibernate Searchはあなたのためのものです。 (そしてそれはLuceneに依存します)。 – Hardy