問題タブ [zend-search-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 投票する
2 に答える
359 参照

zend-framework - Luceneに関するいくつかの質問

Zendを使用していて、検索が必要です。Zendのドキュメントは素晴らしいものではないので、答えるのは簡単ですが、直接明白ではないいくつかの質問がありました。Luceneを使用してSQLデータベースを検索しています

  1. アイテムのインデックスをそのアイテムのテキストに関連付けるにはどうすればよいですか。それで、彼らがアイテムを検索して見つけた場合、どうすればそのインデックスを返すことができますか?私が知る限り、検索のテキストのみを返すことができます。

  2. すべてのデータを保持するアイテムをドキュメントに追加したが、ドキュメントはすでに作成されている場合、それは単にopen('document')、$ doc = new Doc()、$ doc-> addDocument()、commit( )?

  3. データベースに何かを追加するたびにLuceneドキュメントを更新することを理解しています。最適化では、何かを追加するたびに再最適化する必要がありますか?それは非効率的ですか?週に一度やるべきですか?

明らかな質問のように思われることをお詫び申し上げます。事前にご協力いただきありがとうございます。

0 投票する
3 に答える
2958 参照

zend-search-lucene - Zend Lucene が特殊文字を含むすべての検索に失敗する

誰かがこれに対する簡単な答えを知っていれば、エスケープされた文字列を使用して余分なインデックスを作成したり、きれいなコードを散らかしながら目をつぶったりする必要はありません。

基本的に、実行中の Lucene 検索は文字以外の文字を処理できません。スペース、パーセント記号、ドット、ダッシュ、スラッシュなど、何でも構いません。どこでエスケープしてもしなくても、これらの文字を含むアイテムを検索できないため、これは非常に腹立たしいことです。

私には 2 つの選択肢があります: 別のインデックスでこれらの文字を削除し、検索している名前からそれらを削除するか、ひどい検索を停止します。

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

php - Zend_Search_Luceneインデックスの作成と更新

Zend_Search_Luceneを使用して記事のインデックスを作成し、自分のWebサイトで記事を検索できるようにしています。管理者が管理領域の記事を更新/作成/削除するたびに、インデックスが再構築されます。

私の質問はこれです。記事のインデックスを再作成し、削除された記事も処理しているので、(「開いて更新」する代わりに)毎回「作成」を使用しないのはなぜですか?上記の方法を使用すると、記事は毎回addDocumentで追加されると思います(したがって、重複があります)。どうすればそれを防ぐことができますか?ドキュメントがすでにインデックスに存在するかどうかを確認する方法はありますか?

また、「開いて」更新したときにインデックスがどのように機能するかを完全には理解していないと思います。インデックスフォルダに毎回新しい#.cfs(つまり、_0.cfs、_1.cfs、_2.cfs)ファイルが作成されるようですが、「create」を使用すると、そのファイルが新しい#.cfsで上書きされます。 #がインクリメントされたファイル(たとえば、単に_2.cfs)。これらのセグメント化されたファイルとは何か説明していただけますか?

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

zend-framework - Zend Lucene の誤動作: クエリは 1 つずつ機能しますが、一緒には機能しません

よし、これが取り引きだ: Lucene は私に奇妙なことをする. すべてが適切にインデックス化され、すべてが機能し、すべてが高速です。

そこで、英語でカテゴリーを検索します。何百もの結果が飛び出します。

だから私は英語で国を検索します。何百もの結果が飛び出します。

そこで、カテゴリと国を英語で検索します。私が知っている組み合わせは有効です。私はジャックを取得します。何もない。Zip....なぜですか?

$query->getQueryTerms() は有効な用語の配列を返します。エラーはありません。私は一体何を間違っているのですか?

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

php - Zend_Search_Luceneクエリ解析の問題

これがセットアップです。Luceneインデックスがあり、インデックスを作成した2,000のドキュメントでうまく機能します。私はLuke(Lucene Index Toolbox、v.0.9.2)を使用してクエリをデバッグしており、ZF1.9を使用しています。

LuceneIndexのレイアウトは次のとおりです。

基本的に、上記のフィールドで検索できるフォームがあり、上記の情報のいずれかを組み合わせて一致させることができ、それをzendluceueクエリに解析します。それは問題ではありません。問題は、用語の組み合わせを開始したときに、検索内で起動する「最適化」メソッドによってクエリが消えてしまうことです。

これが私が今実行している検索の例です:

フォームバージョン

Luceneクエリ解析

ここで、このクエリ文字列を取得してLUKEにスラップし、[検索]をクリックすると、問題なく結果が返されます。Query Findメソッドを使用すると、爆破します。それで私はそれがどのように機能するかについて少し研究し、問題を見つけました(私は信じています)

まず、検索を実行する実際のコード行を次に示します。

これは実際のコードの簡略化されたバージョンですが、それが生成されます。

ここで、デバッグ後に気付いたことがあります。「optimize」メソッドは、クエリ自体を破棄するだけです。次のコードを作成しました。

次のテキストを出力します。

3番目の出力が完全に空になっていることに注目してください。クエリの書き換えと最適化により、クエリ文字列が空になっているようです。

最適化メソッドがクエリをまとめて削除しているように見える理由を誰かが知っていますか?解析が必要になる可能性のあるフィルターまたはある種のインターフェースがありませんか?LUKEに貼り付けて手動でインデックスに対して実行すると、すべてのクエリが完全に機能しますが、Zendがクエリを解析して検索を実行する方法で何かおかしなことが起こっています。

どんな助けでも大歓迎です。

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

php - Zend Lucene インデックスのマージ

PHP Web アプリを新しいデータベースを持つ別のサーバーに移行したところ、Lucine のインデックスを新しいサーバーに移行しようとしています。インデックスを別のサーバーに移動することはできますか? 別のサーバー(サーバーBなど)から検索インデックス(サーバーAなどのサーバーに保存されている)にアクセスできますか?はいの場合、どこでそれについて情報を得ることができますか?

ありがとう

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

zend-framework - 配列内の Zend_Search_Lucene 検索

配列をドキュメント フィールドとして格納し、その配列をクエリする方法はありますか?

タグ付けされたアイテムのコレクションがあります。たとえば、タグ 55 と 67 に一致するすべてのアイテムを検索できるようにしたいと考えています。

どうすればこれを達成できますか?

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

php - Zend lucene 検索関数を呼び出す方法は?

コメントなしで Zend プロジェクトを継承し、前の開発者と話をすることができませんでした。私はZendの経験がないので、いくつかの問題があります:)

Zend_Search_Lucene を使用してサイトのアイテムをインデックス化する関数内の変数をいくつか出力したいと思います。

私が読んだことから、 ::create は新しいインデックスを作成し、 ::open はそれを更新します。したがって、この ::open 関数で、いくつかの変数を出力したいと思います。

関数の名前とパラメーターは以下のとおりです。いくつかのテストを実行できるように、この関数を呼び出す方法を知っている人はいますか?

編集: または、FS 上のインデックス ファイルを削除してからいくつかの検索を実行するなど、既存のインデックスを削除して完全に再構築する方法はありますか?

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

zend-framework - Zend:インデックスの生成とZend_Search_Luceneの長所と短所

私はいつもデータベースに問い合わせてきたので、ZendSearchLuceneのようなアプリ/クラスに出くわしたことはありません。

Zend_Search_Luceneは、インデックス作成用のアトミックオブジェクトとしてドキュメントを操作します。ドキュメントは名前付きフィールドに分割され、フィールドには検索可能なコンテンツが含まれています。

ドキュメントはZend_Search_Lucene_Documentクラスで表され、このクラスのこのオブジェクトには、ドキュメントのフィールドを表すZend_Search_Lucene_Fieldのインスタンスが含まれています。

インデックスに任意の情報を追加できることに注意することが重要です。アプリケーション固有の情報またはメタデータをドキュメントフィールドに保存し、後で検索中にドキュメントとともに取得できます。

つまり、これは基本的にデータベースを含むすべてに適用できるということです。ここで重要なのは、検索用のインデックスを作成することです。

私が把握しようとしているのは、アプリケーションのどこにインデックスを正確に保存する必要があるかということです。たとえば、データベース、メーカー、モデルに電話を保存している場合、インデックスをどのように分類する必要がありますか?

たとえば、明らかに公開したくないアドレスを使用してユーザーのインデックスを作成している場合、すべてがどのように連携して機能するかについて混乱しています。既知の欠点がある場合は、使用中に知っておくべき落とし穴があります。それ。