0

私の Grails アプリでは、検索/インデックス作成に Searchable プラグインを使用しています。複数のドメイン クラスを含む Compass/Lucene クエリを作成したいと考えています。クラスのIDを参照したい場合、そのクエリ内では、すべてのクラスに「id」プロパティがあるため、単純に「id」を使用することはできません。現在、クラス Foo に次のプロパティを追加することで、この問題を回避しています。

public Long getFooId() {
    return id
}
static transients = ['fooId']

次に、クエリ内で Foo の ID を参照したい場合は、「fooId」を使用します。クラスにプロパティを追加するのではなく、検索可能なマッピングでプロパティのエイリアスを提供する方法はありますか?

4

3 に答える 3

1

私は最終的にこれがそれを行う方法であることを発見しました:

static searchable = {
    id: name 'fooId'
}
于 2009-11-30T23:28:14.613 に答える
0

ありがとう!これは非常にうまく機能します。つまり、OOMエラーを乗り越えることができれば、Searchableプラグインがインストールされるたびにアプリサーバーがスローするように見えます。これらは次の方法で泡立っています:

org.compass.gps.CompassGpsException:インデックス作成に失敗しました、実行例外。ネストされた例外はjava.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:Javaヒープスペース

grails-app / confでSearchable.groovyを構成して、ヒープを使用せずに厳密なfile:///またはmmap://のみの構成を実行し、1日に1回または2回のインデックス作成を行ったことがありますか?検索は便利なことではありませんが、Grails(Oracle 10gを使用)でデータベースミラーリングを使用するコストは、メモリを大量に消費するようです。

検索するドメインの数が非常に少ない(4)小さなデータベース、このアプリケーションの場合は1〜2GB。

于 2010-06-09T20:39:30.653 に答える