1

Luceneページングを実装する必要がある Web アプリを作成しています。ここで、コレクターでのオフセットの使用に関するさまざまな例を見てきました。しかし、それらは古いようです。 Lucene 3.5(または3.6はどれを思い出せません)これを追加したと思います。IndexSearcherメソッドを見てきましたsearchAfter。ただし、最後に渡す必要がありますScoreDoc。これは Web アプリであるため、最後の結果を (ScoreDoc オブジェクトとして) 次の要求に渡す方法がありません。それで、私の質問は、これは通常どのように行われるのですか?

私が実際に思いついた唯一の方法は、構築時に一意のキーをインデックスに追加することです。次に、次のページを取得しようとするときに、そのキーを post パラメーターとして渡します。次に、そのキーを検索してドキュメント ID を取得し、そのドキュメントをプルして searchAfter で使用する必要があります。ドキュメント ID が同じであることに依存できないため、独自の一意のキーを使用する必要があると思います。私はこれで正しいですか?

より良い方法があれば、私に知らせてください。これは Lucene での私の最初の試みです。

4

2 に答える 2

1

ただし、最後の ScoreDoc を渡す必要があります。これは Web アプリであるため、最後の結果を (ScoreDoc オブジェクトとして) 次の要求に渡す方法がありません。それで、私の質問は、これは通常どのように行われるのですか?

問題がわかりません。searchAfter を使用する場合は、ScoreDoc を作成して渡すだけです。あなたのウェブアプリはintとfloatを正しく渡すことができますか?

  /** Constructs a ScoreDoc. */
  public ScoreDoc(int doc, float score) {
于 2012-09-20T02:02:02.993 に答える