問題タブ [searchable-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - Grails Searchable PluginがHibernateAutoFlushでエラーを引き起こすのはなぜですか?
トラブルシューティングしようとしているGrails1.2.5プロジェクトでは、GrailsSearchableプラグイン.5.5.1を使用しています。
問題は、大きなセットのドメインクラスにインデックスを付けようとすると、Grailsが次のようにスローし続けることです。
エラーhibernate.AssertionFailure-アサーションエラーが発生しました(これはHibernateのバグを示している可能性がありますが、セッションの安全でない使用が原因である可能性が高いです)org.hibernate.AssertionFailure:コレクション[domain-class]はflush()によって処理されませんでした
ただし、関連するドメインクラスは、検索可能なプラグインの呼び出し以外の問題なしに、 hibernateによってマッピングおよび使用されています。
検索可能なプラグインの使用法は次のとおりです。
- でコンパスセッションを作成する
compass.openSession()
- コンパストランザクションを開始します。
compassSession.beginTransaction()
- 次に
compassSession.create(result.get(0))
、インデックス付けされていない重要なドメインクラスで呼び出されます - 最後に
compassTransaction.commit()
、トランザクションをコミットするために呼び出されます。 - 2に移動し、次のドメインクラスを処理します
3番目と4番目のドメインクラスの間で、エラーをスローする自動フラッシュがトリガーされます。
誰かがこの問題を解決する方法について何かヒントを教えてもらえますか?
誰かが以前にこの問題に遭遇したことがありますか?
searchable-pluginの.5より前のバージョンでは、これにシステム上の問題があったことを私は知っています。 それらの問題が完全に修正されなかった可能性はありますか?
grails - プログラムでgrailsからコントローラを削除するには?
検索可能なプラグインと競合しています。
前段階で問題のコントローラーを取得するフィルターがあります。grails フィルターで使用可能なプロパティである controllerName と同じ名前を持つ最初のコントローラーを見つけることによって、要求されたコントローラーをフェッチします。
ただし、私の問題は、Searchable プラグインに独自の SearchableController があり、私自身が SearchableController の独自のバージョンを作成したことです。これの効果は、検索ロジックの controllerName と一致する同じ名前の 2 つのクラスがあることです。
プラグインに付属している SearchableController を何らかの方法で削除できますか? 私のオプションは何ですか?
grails - 検索可能なプラグインはHibernateでのみ機能しますか?
grails-1.3.2とhbase-0.2.4プラグインを使用しています。
検索可能なプラグインを使用したいのですが、プラグインをインストールすると、hbase-0.2.4プラグインと競合する休止状態のプラグインが表示されます。
hibernateプラグインをアンインストールすると、アプリケーションを実行できず、次のメッセージが表示されます。
エラー:依存関係がないため、次のプラグインを読み込めませんでした:[searchable]-プラグイン:searchable、依存関係:[dataSource、domainClass、i18n、core、hibernate]
私の質問は次のとおりです。
検索可能なプラグインは休止状態のプラグインでのみ機能しますか?
いいえの場合、hbaseプラグイン用に構成する必要がありますか?
プラグインのような検索可能なものがhbaseにあることを誰が知っていますか?????
ありがとう、アンナ
groovy - Grails 検索可能プラグインを使用して日付で検索する方法
Grails の検索可能なプラグインを使用していますが、日付で検索するにはどうすればよいでしょうか?
私のグルーヴィーなクラスには、このような日付フィールドがあります
値フィールドでは検索できますが、日付フィールドでは検索できません。
sorting - 列挙型によるgrails検索可能プラグインのソート
「theStatus」と呼ばれる列挙型 (enum クラスは Status) プロパティを持つクラス PrintRequest があり、PrintRequest の theStatus に基づいて検索できるようにしたいと考えています。マッピングを作成しました:
私のPrintRequestドメインクラスでは、検索メソッドはまだソートを行いません. 次のように検索メソッドを呼び出します。
ここで、aParams.sort = "theStatus" および aParams.order = "asc"
検索可能が機能しないのはなぜですか? クエリ文字列に一致する PrintRequest のリストを返しますが、ステータスに基づいてソートしません。
PrintRequest.groovy は次のようになります
php - doctrine 1.2.x Searchable Behavior インデックステーブル名を設定しますか?
Zend Framework と doctrine 1.2.x を使用しています Doctrine Searchable Behaviour を追加する際にインデックステーブル名を定義する方法はありますか? ./doctrine build-all-reload スクリプトが「info_index」ではなく「model__info_index」テーブル名を生成する
ここに私の設定があります: //shema.yml
//application.ini
grails - remoteFieldがアクション呼び出しをトリガーしない
そのため、連絡先をその場でフィルタリングする検索フィールドを作成しようとしています。したがって、主な結果がテンプレート(Contact / list.gsp)に表示されます。
これが私のテンプレート(_searchResults.gsp)です:
そのため、現在、テキストを入力しても何も起こりません。検索メソッドにプリントアウトを追加しましたが、まったく呼び出されていません。remoteFieldが停滞していて、アクティブではないようです。
このタグの前提条件がありませんか?公式APIをオンラインで調べましたが、そのようなことを示すものはまったく見当たりませんでした。2.0.0に何か新しいものはありますか?
私は検索可能なプラグインを使用して、コントローラーで結果を取得しています。参考までに。
助けてくれてありがとう!
更新:メイン.gspにjavascriptライブラリ呼び出しを明示的に追加しましたが、サーバーから応答が返ってきたようです。これはすばらしいニュースです(missingPropertyException):
プラグイン定義をjQueryのライブラリ呼び出しに追加する必要がありました(library=jqueryおよびplugin=query)
grails - Grails - 検索可能なプラグイン: Lucene インデックスだけに依存するのをやめることはできますか?
さて、検索可能なプラグインを現在のアプリで動作させようとしてきましたが、気になることが 1 つあります。
すべての検索は、Lucene インデックスのみに依存します。
そして、それはいくつかの厄介な問題につながります (次のように: http://jan-so.blogspot.mx/2009/04/eager-fetching-and-searchable-plugin-in.html )。基本的に、すべての 1 対多の関係は、検索結果に null 値が含まれます。それを避けるには、多くのドメインを検索可能にする必要がありますが、それは私のデータベースの半分が Lucene インデックスにマッピングされることを意味します...そしてそれは間違っているように聞こえます.
私は現在開発環境にいるので、すべてがメモリにロードされ、Lucene は Java で少なくとも 40% 多くのメモリを使用するようにします (合計で 1.2GB が使用されます。only
およびexclude
)。
では、Lucene インデックスだけに依存するのを止めることはできますか? インデックスを検索したいのですが、インデックスにあるものだけを返す必要はありません。それとも、手動で HQL クエリを作成するよりも、すべてをインデックスに保持する (したがって、検索可能な方法で行う) 方が本当に便利ですか?
grails - 検索可能なインデックスが手動更新でロックされる (LockObtainFailedException)
ロードバランサーの背後で実行される Grails プロジェクトがあります。サーバー上で実行されている Grails アプリケーションの 3 つのインスタンスがあります (個別の Tomcat インスタンスを使用)。各インスタンスには、独自の検索可能なインデックスがあります。インデックスは個別であるため、アプリケーション インスタンス間でインデックスの一貫性を維持するには、自動更新だけでは十分ではありません。このため、検索可能なインデックスのミラーリングを無効にし、インデックスの更新はスケジュールされた Quartz ジョブで手動で行われます。私たちの理解によれば、アプリケーションの他の部分はインデックスを変更すべきではありません。
Quartz ジョブは 1 分に 1 回実行され、アプリケーションによって更新された行をデータベースからチェックし、それらのオブジェクトのインデックスを再作成します。ジョブは、同じジョブが既に実行されているかどうかも確認するため、同時インデックス作成は行われません。アプリケーションは起動後数時間は問題なく動作しますが、ジョブの開始時に突然 LockObtainFailedException がスローされます。
22.10.2012 11:20:40 [xxxx.ReindexJob] エラー検索可能なインデックスを更新できませんでした、クラス org.compass.core.engine.SearchEngineException: サブ インデックス [製品] のライターを開けませんでした。ネストされた例外は org.apache.lucene.store.LockObtainFailedException: ロック取得がタイムアウトしました: SimpleFSLock@/home/xxx/tomcat/searchable-index/index/product/lucene-a7bbc72a49512284f5ac54f5d7d32849-write.lock
前回のジョブ実行時のログによると、再インデックスはエラーなく実行され、ジョブは正常に終了しました。それでも、前回の操作が未完了でロックが解除されていないかのように、今回は再インデックス操作によってロック例外がスローされます。アプリケーションを再起動するまでロックは解除されません。
ロックされたインデックスを手動で開くことで問題を解決しようとしましたが、これにより次のエラーがログに出力されました。
22.10.2012 11:21:30 [manager.IndexWritersManager] エラー 不正な状態です。インデックス ライターを開いているとマークしていますが、別のライターはサブ インデックス [製品] に対して開いているとマークされています
この後、ジョブは正しく機能しているように見え、再びロック状態でスタックすることはありません。ただし、これにより、アプリケーションは常に CPU リソースの 100% を使用します。以下はクォーツジョブコードの短縮版です。
問題を解決するための助けをいただければ幸いです。事前に感謝します。
JMX CPU サンプルに基づくと、Compass は舞台裏で何らかのスケジューリングを行っているようです。1 分間の CPU サンプルから、通常のインスタンスと 100% の CPU インスタンスを比較すると、いくつかの違いがあるように見えます。
- org.apache.lucene.index.IndexWriter.doWait() がほとんどの CPU 時間を使用しています。
- Compass Scheduled Executor スレッドがスレッド リストに表示されますが、これは通常の状況では見られませんでした。
- 1 つの Compass Executor スレッドが commitMerge を実行していますが、通常の状況では、これらのスレッドのいずれも commitMerge を実行していません。
grails - Grails Searchable プラグインと GORM マーシャリング
1 対 1 の関係があります (User ドメインに hasOne、UserInfo ドメインに属しています)。BootStrap の実行中に例外が発生します。
org.compass.core.converter.ConversionException: エイリアス [UserInfo] の null ID [id] をマーシャリングしようとしています
このコード行はそれを生成します: