大きな結果セットを返すLuceneのパフォーマンスへの影響

Lucene(またはSolr)に通常の「トップ10」の代わりに非常に長い結果セットを返させることによるパフォーマンスへの影響を知っている人はいますか? 実際の結果を返す前に、ユーザー検索からすべての結果(100,000文書程度)を返し、返された文書IDを後処理したいと考えています。

当社の現在のインデックスには、約10〜

3
試してみる場合はどうなりますか?
追加された 著者 spraff,
私はそれを試してみるつもりですが、もっと多くのデータ、ネットワーク効果などをシリアル化し直すコストについて考える必要はありません.Xodarapにも私のコメントを見てください。
追加された 著者 Bjorn,

2 答え

スプラフが言ったように、「Xは十分速くなるだろうか?」という形の質問に対する答えは? 「それは依存している。

私は心配するだろう:

  1. これらのドキュメントが大きい場合は、特に取得しているフィールドを保存している場合は、キャッシュをゴミ箱に入れます。
  2. #1のため、非常に遅い、たくさんのディスクIOがあります。
  3. Luceneの業績は、返却件数とともに増加しています。したがって、 "ディスクはRAMよりも遅い"のような実用的な考慮事項を無視しても、遅くなります。

あなたが何をやっているのか分かりませんが、それはカスタムスコアアルゴリズムで実現できる可能性があります。

もちろん、すべての文書を検索するのが遅くなるからといって、それが役に立たないのは遅すぎるというわけではありません。いくつかのfaceting実装は本質的にすべての一致するドキュメントを取得し、これらは多くの人に適切に機能します。

2
追加された
私はあなたが "初期検索"の意味を理解していませんが、あなたが保管しているものがすべてIDであれば、私の答えの#1と2は関連性がありません。
追加された 著者 Xodarap,
私たちの計画は、実際には余分なフィールドを避け、LuceneにはドキュメントIDだけを返すようにしています。そのため、私は、より多くの行を返す "内部"の効果に興味があるのです。実行の第一のコストは、返される結果の数がそれほど重要ではない初期検索を実際に実行するか、またはコストが返されるドキュメントの数の影響よりも大きくなるでしょうか?あなたが参照した記事は非常に有益でした、ありがとう。
追加された 著者 Bjorn,

2.5秒で10万行を戻すことができました.2,700万のドキュメントがインデックスされていました(各ドキュメントには約600Bのテキストフィールドが1KBあります)。ハードウェアは128 GBのRAMを持っていたのは普通ではありません。 Solrによるメモリ使用量は次のようになりました。Resは50GBでしたVirtは106GBでした。

私は8000万のドキュメントに行った後、パフォーマンスの低下を見始めました。現在、ハードウェアを問題とどのようにマッチさせるか検討しています。あなたを助けることを願っています。

2
追加された