Theres很多的方式做到這一點,但如果你需要一個快速和簡單的方法來做到這一點,使用TermEnum
。
只需將這個小代碼示例粘貼到新的C#控制檯應用程序中,並檢查它是否適用於您。
RAMDirectory dir = new RAMDirectory();
IndexWriter iw = new IndexWriter(dir, new KeywordAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
Document d = new Document();
Field f = new Field("text", "", Field.Store.YES, Field.Index.ANALYZED);
d.Add(f);
f.SetValue("abc");
iw.AddDocument(d);
f.SetValue("colorado");
iw.AddDocument(d);
f.SetValue("coloring book");
iw.AddDocument(d);
iw.Commit();
IndexReader reader = iw.GetReader();
TermEnum terms = reader.Terms(new Term("text", "co"));
int maxSuggestsCpt = 0;
// will print:
// colorado
// coloring book
do
{
Console.WriteLine(terms.Term.Text);
maxSuggestsCpt++;
if (maxSuggestsCpt >= 5)
break;
}
while (terms.Next() && terms.Term.Text.StartsWith("co"));
reader.Dispose();
iw.Dispose();
只是爲了澄清,是否在您的索引中將「圖畫書」索引爲單個術語? –
是的。 1 Lucene文檔將在其中包含多個Term字段,如客戶名稱,客戶所在的城市,參考編號... – Rich