2011-02-28 81 views
1

我可以將自定義ID分配給Lucene索引文檔,而不是自動生成新ID嗎?Lucene:分配自定義ID?

我在問這是因爲我的收藏中已經有了ID。一個特定的字段用於此。

感謝

回答

2

是 - 其實這是做它的唯一途徑。 (Lucene不能爲你生成ID,它被稱爲「doc ID」的內容只是內部的,並且在Lucene的意外情況下可能會改變。)

你只需要一個名爲「myID」的字段,將其標記爲已存儲。

+0

因此,我已經添加了myID字段,但是如何將結果中看到的這些id「doc」替換爲:[doc = 0 score = 10.122469,doc = 1 score = 3.5992513,doc = 11 score = 0.78047055] ? – aneuryzm 2011-02-28 16:45:49

+0

@Patrick:這些是內部Lucene ID,你應該忽略它們。要獲得字段的值,只需使用'doc.GetField(「myID」)' – Xodarap 2011-02-28 16:48:25

+0

這些結果是topDocs = searcher.search(booleanQuery,220000)的輸出。 topDocs.scoreDocs;我怎樣才能得到我的自定義ID而不是內部的IDDD的數組? – aneuryzm 2011-02-28 16:50:46