問題タブ [compass-lucene]

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.

0 投票する
1 に答える
529 参照

mysql - for ループ内でドキュメントを lucene インデックスに継続的に追加しようとすると例外がスローされる

「compass-2.2.0」を使用して、MySql データベース テーブルに lucene インデックスを作成しています。これは、for ループ内でドキュメントを lucene インデックスに継続的に追加しようとすると例外がスローされるため、ドキュメントにインデックスを付けるためのコードの一部です。このエラーを克服するための回避策はありますか?

私のホスティング サーバーは、WSo2 Stratoes tomcat ベースのサーバーと Wso2 Stratoes データ サービス サーバーです。私のプログラムは、ローカルの tomcat/mySql サーバーで問題なく動作します。

これは、私がフォローしたサンプルのブログ投稿です- http://mprabhat.wordpress.com/2012/08/13/create-lucene-index-in-database-using-jdbcdirectory/

これは私が取得している新しいエラーです。私が使用しているサーバーでは、一時ファイルの作成が許可されていません。コンテンツをデータベースに書き込もうとすると、どういうわけか一時ファイルが作成されます。上記のループ内でデバッグしましたが、約 5 回の繰り返しで正常に終了し、次のエラーが発生します。このエラーを克服するための回避策はありますか?

0 投票する
1 に答える
987 参照

java - 標準アナライザーを使用してLucene検索用語をスクラブします

Luceneインデックスを検索するために、検索語文字列からブールクエリを構築しています。これらの文字列を、インデックスに使用しているアナライザーである標準アナライザーで分析したいと思います。たとえば、Luceneのドキュメントでは、ハイフンによって数字は一緒にとどまるが、単語はトークン化されると記載されているため、は、、foo-bar 1-2-3として分割する必要があります。これを行うための最良の方法は何ですか?foobar1-2-3

現在、QueryParserを介して検索語文字列を実行しています。

これに伴う問題は、引用符が挿入されることです。たとえば、は、にfoo-bar 1-2-3なります。これは、Luceneがとにトークン化されているため、何も返しません。"foo bar"1-2-3foo-barfoobar

引用符を削除してこの状況をハックしたくないのは、replaceおそらく何かが足りないか、何かが間違っていると感じているからです。

0 投票する
1 に答える
307 参照

lucene - DB に lucene インデックスを保存中に例外が発生しました

lucene バージョン 4.0.0 とコンパス 2.2.0 を使用して、Mysql に lucene インデックスを保存しています。

次のエラーが発生し、それで立ち往生しています。

また、どちらがより良いパフォーマンスを発揮するか教えてください。インデックスを FS または DB に保存しますか?

0 投票する
1 に答える
252 参照

grails - テーブルの一部の Lucene Grails Searchable プラグイン ビルド インデックス

フラグ列を持つテーブルにマップされた検索可能なドメイン クラスがあります。現在、Lucene がインデックスを作成すると、次のようなクエリが生成されます (テーブル内のすべてのデータが返されます)。

生成されたクエリが次のようになるように、特定のフラグ値を含む行のみのインデックスを構築することは可能ですか?

0 投票する
1 に答える
339 参照

grails - Grails検索可能なプラグイン-フィルタリング結果セット

現在、Luceneを使用しています。私の要件は、Facebookの検索ボックスのようなものです。ユーザーは人や友達を検索します。しかし、私の要件では、ユーザーは名前、場所、電子メールアドレスなどのプライバシー設定をすべての人または友人だけに表示できます。彼は、これらのフィールドを友人やコミュニティの他のメンバーから表示および非表示にすることができます。

名前、場所、メールアドレスに基づいて簡単な検索を実装しました。しかし今、私はプライバシー設定に基づいて検索を変更しています。

これが私のシナリオです..

ユーザーAにはプライバシー設定があります。
名前は友達にのみ表示されます
電子メールはすべての人に表示され
ます場所は誰にも表示されません。

ユーザーXが検索ボックスにユーザーAの場所を入力した場合、その場所は結果に表示されないはずです。ただし、ユーザーXが検索ボックスに「ユーザーAの名前」と入力した場合、ユーザーAには名前が制限されておらず、プライバシー設定で友人に表示さ れるため、表示されるはずです。

アプローチを教えていただけませんか。

要件を明確に記述していない場合はお知らせください。

私は次のアプローチを分析しました
。1-IndexSearcherのexplainメソッド(全体的なパフォーマンスに影響します)
2-フィルターを調べましたが、多くを得ることができませんでした

私のアプローチ:

名前に基づいて
resultSetを取得する場所に基づいてresultSetを
取得する電子メールアドレスに 基づいてresultSetを取得する

3つの結果セットごとにループし、プライバシー設定に関連する条件を適用し、プライバシー設定に基づいてアイテムを除外します。そして最後に、3つの結果セットすべてをマージします。

他のアプローチはありますか?私と共有してください。ありがとう。

0 投票する
2 に答える
266 参照

lucene - Grails 検索可能プラグイン (Lucene) - 1 対多のクエリ

私はグレイルズを使用していsearchable plugin(0.6.4)ます。プライバシー設定に基づいてメンバーを検索する必要があります。以下はデータベースの設計です。メンバーはMemberProfile, and MemberProfile has PrivacySettings

1 つのメンバー プロファイルには、各フィールドの多くのプライバシー設定があります。

プライバシー設定テーブルで、fieldsSectionName に display_name があり、connectionLevel が true であるメンバーのみを検索するクエリは何でしょうか。

私はこのようなことを試みています

0 投票する
1 に答える
962 参照

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 つ以上のドメインに対応するテーブルを切り捨てた場合にのみ起動します。

私たちの問題は以下の投稿に似ています

http://grails.1312388.n4.nabble.com/hibernate-Searchable-failing-to-index-on-program-start-td4119566.html

問題を解決するために最善を尽くしましたが、うまくいきません。この問題の解決にご協力ください。

0 投票する
1 に答える
434 参照

grails - Grails lucene 検索に非常に時間がかかる

背景として、私は自分のアプリケーションに Grails v2.2.1 と Searchable プラグイン (v0.6.4) を使用していますが、Lucene の構成に関しては初心者です。

ログには、検索に 26 ミリ秒かかっていることが示されていますが、コンパス トランザクションが返されるまでに約 15 秒かかります。

2013-04-23 00:40:34,269 DEBUG grails.plugin.searchable.internal. compass.search.DefaultSearchMethod - query: [+kind:band +name:snoop], [4] hits, took [26] millis

2013-04-23 00:40:49,965 DEBUG org.compass.core.transaction.LocalTransaction - Committing local transaction on thread [http-bio-8080-exec-10] Compass [1176020804] Session [2089649487]

これは、クエリがすばやく実行されるため、Lucene よりも Compass の問題のようですが、Compass マッピングは Java プロセスをほぼ 100% の CPU で固定し、長時間ハングします。

約 3500 のドメイン オブジェクトにインデックスが付けられており、ドメイン モデルは次のようになります。name フィールドと id フィールドのみにインデックスを付けようとしましたが、Luke を通して見ると、ドメイン内のすべてがマップされているようです。

バンドのコントローラーでの検索ロジック:

どんなアイデアでも大歓迎です。これは私の自己学習プロジェクトのためのもので、正しい方法で検索したいと思っています。:) ありがとう、ケビン

0 投票する
1 に答える
265 参照

grails - Grails Searchable プラグインの結果セットの投影

ドメイン クラスとそれに関連付けられたドメイン クラスの複雑な検索可能な構成があります。約 200 件 (最大 200 件) の結果を検索すると、応答に時間がかかりすぎます。

結果セットには、ドメイン クラスでの検索用に指定されたすべてのフィールド (単純または関連付け) があります。ID リストのみを返し、ドメイン クラスの他のフィールドを無視する必要があります。出来ますか?検索を高速化するためにこれを行いたいです。この ID リストは、別の SQL を使用しないデータベースのクエリに使用されます。すべてのフィールドを取得すると、検索が遅くなるようです。

0 投票する
1 に答える
97 参照

grails - Grails Searchable プラグインをインデックス条件に追加

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

アドレスが !=null のオブジェクトのみを検索インデックスに入れたい。構成によって達成可能ですか?