問題タブ [grails-searchable]
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.
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] をマーシャリングしようとしています
このコード行はそれを生成します:
grails - grails install-searchable-config
検索可能なプラグインのデフォルト設定を再構成する必要があります。install-searchable-configを実行しようとすると、次のエラーが発生します。
エラーI/O例外読み込みスクリプト[null\scripts \ Init.groovy(システムは指定されたパスを見つけることができません)]:null \ scripts \ Init.groovy(システムは指定されたパスを見つけることができません)
誰もがこれを修正する方法を知っていますか?
grails - 検索可能なクエリ ビルダーで null 値チェックを含む Grails
grails 2.1.1 と検索可能 - 0.6.3 を使用しています
を使用して結果をフィルタリングしようとしていますquery builder
。私たちの問題は、フィールドに null を持つタプルをチェックできないことです。多くのドキュメントを調べましたが、解決策が見つかりませんでした。
null value check
にクエリビルダーを使用する方法はありますかgrails searchable plugin
。
使用して
また
動作しません。
grails - Grails Searchable Plugin 多対多検索
ドメイン クラス LibraryElement と多対多の関係を持つドメイン クラス User があります。ユーザーに属する特定のテキストを含むすべてのライブラリ要素をフィルタリングしようとしています。検索可能なプロパティと関係は次のように定義されます。
ユーザー側:
LibraryElement 側:
私はこのように検索を実行しようとしています:
この検索でヒットするはずのデータがデータベースにあるにもかかわらず、0 の結果が得られます。
grails - マッピングされたドメインによる Grails 検索可能プラグイン検索
grails 2.1.1 と grails searchable-plugin 0.6.4 を使用しています。
searchable を使用して、属している関連付けを持つドメインを検索します。
ドメインがあるとします
ここで、b インスタンスで A にアクセスするには、基準を次のように記述します。
次に、検索可能なクエリ ビルダーを使用して同様のクエリを作成する方法を説明します。
grails - RAM インデックスを設定した Grails Searchable プラグイン セットが Cloud Foundry へのデプロイで失われる
検索可能なプラグイン 'compassConnection' が RAM インデックスを使用するように設定されている Cloud Foundry に Grails アプリケーションをデプロイしています。問題は、Cloud Foundry がその魔法の自動構成の一部を適用して、代わりにファイルベースのインデックスを使用するように「compassConnection」を設定することです。
ディスクベースのインデックスを使用していて、その環境で動作するように Cloud Foundry を再構成する必要がある場合はこれで問題ありませんが、RAM インデックス構成はそのままにしておきます。
これを機能させる方法はありますか?
ありがとう、オリー
lucene - Grails 検索可能プラグイン (Lucene) - 1 対多のクエリ
私はグレイルズを使用していsearchable plugin(0.6.4)
ます。プライバシー設定に基づいてメンバーを検索する必要があります。以下はデータベースの設計です。メンバーはMemberProfile, and MemberProfile has PrivacySettings
1 つのメンバー プロファイルには、各フィールドの多くのプライバシー設定があります。
プライバシー設定テーブルで、fieldsSectionName に display_name があり、connectionLevel が true であるメンバーのみを検索するクエリは何でしょうか。
私はこのようなことを試みています
grails - Grails Plugin Searchable - デフォルトのワイルドカード検索
すべての検索をワイルドカードで自動的にラップする方法はありますか?
例えば:
mysql - Grails hibernate/Searchable は、以下の例外を与えることでサーバーの起動を停止します
Grails アプリケーションで Grails 2.1.1 と Searchable プラグイン 0.6.4 を使用しており、以下にすべてのマッピングで示されている一部のドメインで検索可能に実装されています。
データは正しいマッピングと制約で正常に保存されています。
問題は、関係を持つテーブル user に以下の drowslike があるときに始まります
ユーザー a1 -> ユーザー教育 b1 -> 学校 d1
と
ユーザー a2 -> ユーザー教育 b2 -> 学校 d1
また
ユーザー a1 -> UserWorkings c1 -> 組織 e1
と
ユーザー a2 -> UserWorkings c2 -> 組織 e1
(上記の事実については、データの数が多いために問題が発生した可能性があるかどうかはわかりません。)
次に、サーバーを起動しようとすると、以下の例外が発生し、サーバーが起動しません
検索可能なインデックスを削除して再起動してみましたが、起動しません。
サーバーは、5 つ以上のドメインに対応するテーブルを切り捨てた場合にのみ起動します。
私たちの問題は以下の投稿に似ています
問題を解決するために最善を尽くしましたが、うまくいきません。この問題の解決にご協力ください。