2012-01-29 6 views
0

私の最初のgrailsアプリケーションを開発しています。私は自分のアプリケーションに検索メソッドを入れたいと思います。 table.Like findByIdを使用するとIDだけで検索するか、findByNameを使用すると名前やfindByDescriptionだけを検索します.. findallやfindBy *を使用してIDのようなすべてのフィールドに一致させることはできますか? 、名前、説明..テーブルのすべてのフィールドで入力キーワードを検索するには

+0

検索可能なプラグインをチェックすると、grails HSQLDBのinbuildデータベースを使ってドメインクラス –

答えて

0

あなたはRDBMSを使用している場合は、次の行でクエリを発行できます。

SELECT .... FROM .... WHERE name like '%value%' OR description like '%value%' OR id like '%value%' 

しかしこれは非常に非効率的になるでしょう。代わりに、全文検索API lucene/solrを使用して、1つのフィールドの一部としてコンテンツ全体を索引付けし、それに関する照会を発行することができます。

+0

の複数のフィールドを検索する方がはるかに優れた/より速い方法です...そのクエリを使用する方法... – Shagul

+0

私は検索APIを使用することができると思うidontは、他の方法で同じことを行うことは可能ですか? – Shagul

+0

結果は検索とは独立しています。もちろん、検索後に再びデータベースにアクセスするのではなく、表示するすべてのフィールドをluceneインデックスの一部としてユーザーに格納することができます。 – naresh