- PR -

複数個の検索条件があるSQLの組み立て

1
投稿者投稿内容
Ier
常連さん
会議室デビュー日: 2006/02/23
投稿数: 33
投稿日時: 2008-10-02 21:21
失礼します。現在、文章検索システムを考えているのですが、
検索用テキストボックスに下記のように複数のワードを指定された場合

 例)[ 本△java ] (△=スペース)

SELECT * FROM Book WHERE title LIKE '%本%' AND title LIKE '%java%';
のようなSQLが発行されるような仕組みを考えています。
そこで質問なのですが、検索用ワードの数によって検索条件の個数(LIKE句等)を
動的に変えなければならないSQLを組みたい場合に使えるフレームワークや
ライブラリなどはあるのでしょうか?

HibernateのCriteria
 session.createCriteria(Book.class).add(Expression.like("title", "%本%"))
が解決方法の候補としてあるのですが、
他に良い方法などあればご教授ください。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-10-02 23:05
組み立て処理のためにHibernateを使うということですか?
Hibernateで組み立て処理を行いたいということですか?

自分の感覚ですが、SQLの組み立てぐらいたいした処理ではないと思っていますので、
普通にJDBCを使うなら、検索条件をスプリットしてループで組み立ててしまいます。
そのためだけにライブラリを増やしたりしたくないですね。
(ライブラリのバージョンや依存の管理も面倒)
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-10-03 10:00
直接の答えではありませんが、複雑な全文検索を行うのであればデータベースではなく検索エンジンを使うことをお勧め致します。
Hibernate を使っているのであれば Hibernate Search がいいかもしれませんね。
http://www.thinkit.co.jp/free/article/0711/7/1/


[ メッセージ編集済み 編集者: インギ 編集日時 2008-10-03 10:02 ]
1

スキルアップ/キャリアアップ(JOB@IT)