0

検索可能なプラグインについて質問があります:

私は2つのドメインを持っています:

class Ads { 
        static searchable = true 
        String fromCity 
        String toCity 
        User user 
     static constraints = { 
    } 
} 
class User { 
     String username 
     String password 
} 

そして、私は2つのフィールド(fromCity、toCity)を持つ独自の検索ページを開発しました。のようなものを持つために:

def listResults =  searchableService.search("NewYork","Miami") 

そこで、これをCriteriaFieldに検索メソッドに与える方法を知りたいと思います。

def srchResults = searchableService.search(??????) 

誰かが私にこれをするのを手伝ってくれるなら、私はとても感謝するでしょう。

4

1 に答える 1

1

まず、ドメイン クラスで検索可能なクロージャを定義する必要があります。例えば

static searchable = {
        analyzer "simple"
        only = ['firstName','uuid']
        firstName boost: 5.0
    }

その後、次のように検索できます。

def searchResults = SomeDomain.search(textToSearch + "*" + " -(firstName: ${myName})", params)

-(firstName: ${myName})これにより、検索結果から私の名前が削除されます。同様に、ロジックに応じて他のフィールドを削除することもできます。

デフォルトの演算子は「and」です。演算子を変更できるため、次の例を参照してください。

defaultOperator - Either "and" or "or". Default is to defer to the global Compass setting, which is "and" if not otherwise set by you.

search("mango chutney", defaultOperator: "or")
// ==> as if the query was "mango OR chutney"
//     without the option it would be like "mango AND chutney"

詳細については、ドキュメントを参照してください。 検索可能なプラグインのドキュメント

助けが必要な場合はお知らせください。

コンパスに関するその他のヘルプ セクション 12.5.1 を参照してください。クエリ文字列の構文

于 2013-03-05T10:15:33.830 に答える