問題タブ [inverted-index]
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.
lucene - Lucene転置インデックスアクセスカウント
Luceneでは、転置インデックスのアクセス数について知りたいです。
たぶん、Luceneはこのような転置インデックスを持っています、
猫の犬
------------
d01 d02
d02 d01
d03 d03
----- -----
クエリ「catdog」を使用すると、Luceneは転置インデックスに連続してアクセスします。次に、トップ2の結果を尋ねると、4回のアクセスで、Luceneはd01、d02を返します。その場合、アクセス時間(この例では「4」)を知りたいです。
現在、私はこのようにLuceneを使用しています。
ありがとうございました。
ruby - Ruby で逆インデックス ハッシュを作成する
新しいプロジェクトに取り組んでおり、ファイル データベース (CouchDB など) に格納できる逆インデックスを開発する必要があります。Ruby 1.8.7 でコーディングしています。
これは、転置インデックスの形式です。
CouchDB のようなものを使用して、次のような一連のチェックでエントリを作成できる方法が必要です。
- 2 番目のハッシュ キー (つまり
#linux
) が作成されていない場合は、作成します。 - 3 番目のハッシュ キー (つまり
patch
) が作成されていない場合は、作成してその値を1
- 同じ単語が再び出現するたびに、
['en']['#linux']
または変数が何であれ、繰り返し、カウント (最も右の値) を 1 ずつ増やします。
私は基本的なハッシュを使用するだけで問題を解決しましたが、スクリプトを約 1TB 以上のテキストを処理するように設定した場合、これらをメモリに保持してもあまりうまくいきません。
選択された回答
選択した回答は、これに最適です。唯一の違いは、構文のわずかな変更であり、次のように機能します。
python - Python を使用した逆インデックス システム
Python を使用して逆索引を作成しています。
それが私に提供できるパフォーマンスについて、私はいくつかの疑問を持っています。
Python は Java や C とほぼ同じくらい高速にインデックスを作成できますか?
また、モジュール/実装が存在するかどうか (そして、それらは何ですか?リンクをお願いします) と、Java/C で開発されたものと比較してどれくらいうまく機能するかを知りたいですか?
Psyco で Python を C の 2 倍の速さで最適化したこの男の話を読みました。
gcc 3.x コンパイラは超高速であるため、これが誤解を招くことは事実です。基本的に、私の言いたいことは、Python が C よりも速くないことを知っているということです。また、Java と比較してそのパフォーマンスに光を当てることができる人はいますか? 私はそれについて手がかりがありません。(逆インデックスの実装に関しては、基本的にディスクの書き込みと読み取りが必要になるため、可能であれば。)
最初にグーグルで検索せずに、ここでこれを尋ねているわけではありません。明確な答えが得られなかったので、質問です。
どんな助けでも大歓迎です!
algorithm - 逆リストの和集合
k個のソートされた逆リストを与えてください。これらのk個のリストの和集合を取得する効率的なアルゴリズムが必要ですか? 各インバーテッド リストはメモリ内の読み取り専用配列であり、各リストにはソートされた順序で整数が含まれます。結果は、十分な大きさの事前定義された配列に保存されます。k-way マージより優れたアルゴリズムはありますか?
python - Python 逆索引の効率
逆インデックス/転記リストに関連して、最近学んでいる概念のいくつかを実装するために、いくつかの Python コードを書いています。私は Python を初めて使用し、場合によってはその効率を理解するのに苦労しています。
理論的には、それぞれが一意の ID を持つ一連のドキュメント D の逆インデックスを作成するには、次の手順を実行するdoc_id
必要があります。
- Dでの各ドキュメントの構文解析/字句解析の実行
- ストップワードの削除、ステミングの実行など。
(word,doc_id)
すべてのペアのリストを作成する- リストの並べ替え
- 重複を
{word:[set_of_all_doc_ids]}
(逆インデックス)に圧縮する
ステップ 5 は、多くの場合、メタデータ (単語の頻度、バイト オフセット) を含む単語と、投稿リスト (単語が出現するドキュメントのリスト) へのポインターを含む辞書を作成することによって実行されます。投稿リストは、効率的なランダム挿入を可能にするデータ構造、つまりリンクされたリストとして実装されることがよくあります。
私の問題は、Python が高水準言語であり、メモリ ポインター (したがって、リンクされたリスト) などを直接使用することは範囲外のように思われることです。非常に大きなデータセットの場合、適切な時間内にインデックスを計算するあらゆる種類の機能を保持するには、効率を最大化する必要があることが既にわかっているため、プロファイリングの前に最適化しています。
SO には、Python の逆インデックスに関する他のいくつかの投稿があり、MY の現在の実装と同様に、キーをリスト (またはセット) にマッピングする辞書を使用しています。このメソッドは、リンクされたリストへのポインターを直接コーディングできる言語と同様のパフォーマンスを期待できますか?
database - SQLite FTS テーブルから転置インデックスを取得する
Sqlite と FTS テーブルを使用してアプリケーションに全文検索機能を実装した後、FTS テーブルから FULL 転置インデックスを取得するパフォーマンスの高い方法に興味があります。実際には、すべての用語間のマッピングを含む結果テーブルが必要です-> docid's->出現数。
Sqlite FTSドキュメントに従う- テーブルの作成後
...そしてコンテンツの挿入...
... FTS AUX テーブルのように、すべてのドキュメントの用語と出現回数だけではなく...
結果は次の表のようになります。
ドキュメント コレクション内のすべての用語に対する単純な一致クエリが十分に効果的かどうかはまだわかりません。もっと直接的な方法があるのではないでしょうか?
java - 反転したドキュメントインデックスをディスクに保存するにはどうすればよいですか?
この質問がstackoverflowとgoogleで何度も聞かれていることは知っていますが、すべての答えが私を満足させることはできません。ほとんどのソリューションは、インデックス全体がメモリに収まると想定しており、Javaシリアル化によってディスクに保存できます。インデックスが必要な場合は、インデックス全体をメモリにロードする必要があります。このようなソリューション: ソリューション1、 ソリューション2。しかし、私たちが知っているように、この仮定は常に正しいとは限らないので、メモリに収まらないときに反転したドキュメントインデックスをディスクに保存するにはどうすればよいですか?
Javaでの解決策を教えていただければ幸いです。
lucene - 投稿リストからエントリを削除する Lucene 4.0
投稿リストからエントリを削除する必要があります。Lucene 4.0でそれを行う方法は? さまざまなプルーニング アルゴリズムをテストするには、これを行う必要があります。
前もって感謝します
Z P
c++ - リアルタイム検索エンジンのアルゴリズムは何ですか?
転置インデックスは、高速に検索できるように設計されていますが、更新はそれほど簡単ではありません。私が知る限り、インクリメンタル インデックスは逆インデックス データの更新に使用されます。
では、リアルタイム検索のアルゴリズムまたは主な概念は何ですか?どのようにそれを行ったのでしょうか?
file - 逆索引付けに必要なファイル形式
私は逆索引付けに取り組んでいます。これは、文書コレクションを索引付けし、各用語を情報とともに保存し、その参照を投稿ファイル (文書 ID、場所など) に保存します。
現在、私はそれを .txt ファイル形式で保存しています。これは、その .txt ファイルに関するすべてのクエリに対して文字列の一致が必要であり、より多くの時間がかかり、より複雑なものになります。
その情報を、リンクされたリスト スタイルのデータ構造のようなファイルに保存したいと考えています。このタイプのシナリオではこれが可能です....(また、インデックス作成にPHP言語を使用しています)。
どんな助けでも感謝します、ありがとう。