私はLuceneを使用して、さまざまなドキュメントを格納(およびインデックス)しています。
各ドキュメントには、永続的な一意の識別子(URLの一部として使用される)が必要です。
SQLデータベースを使用している場合、integer primary key auto_increment
(または同様の)フィールドを使用して、追加されたすべてのレコードに対して一意のIDを自動的に生成できます。
Luceneでこれを行う方法はありますか?
Luceneのドキュメントには番号が付いていることは承知していますが、これらの番号は時間の経過とともに再割り当てされることに注意してください。
(私はLucene 3.0.3のJavaバージョンを使用しています。)
ラースマンが言ったように、これを別のフィールドに格納する必要があります。フィールドをインデックスに登録するだけでなく保存し、KeywordAnalyzerを使用してインデックスを作成することをお勧めします。カウンターをメモリに保持し、新しいドキュメントごとに更新できます。
残っているのは、永続性の問題です。Luceneプロセスが停止したときに最大IDを保存する方法です。1つの可能性は、最大IDを保存するテキストファイルを使用することです。
私は信じて柔軟なインデックスは、あなたが「グローバル」フィールドとしてインデックスに最大のIDを追加することができます。Luceneのトランクを使用したい場合は、柔軟なインデックス作成を試して、それが目的に合うかどうかを確認できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加