2013-01-31 41 views
2

我在代碼庫中找到了我在創建lucene時使用的文檔相同的字段名稱被多次用於不同的值(術語)。Lucene - Lucene中字段的唯一名稱文檔

doc.add(new Field("sameName", value1, store, index)); 
doc.add(new Field("sameName", value2, store, index)); 
... 
doc.add(new Field("sameName", value3, store, index)); 

它正確嗎?它對於什麼有用?

則此字段的名稱搜索時使用:

 QueryParser parser = new QueryParser(Version.LUCENE_40, "sameName", new StandardAnalyzer(
      Version.LUCENE_40)); 

似乎只搜索領域的「sameName」期間使用,儘管有在文檔等領域的數量。對我來說很奇怪。是否有意義?

+2

你見過http://stackoverflow.com/questions/401754/field-having-multiple-distinct-values? – mindas

回答

1

一個字段可以用多個值進行索引。例如,您可以有一個「內容字段,其中包含文檔中的所有單詞,但也包含元數據,例如作者或標籤。

關於您的搜索問題,根據字段初始化QueryParse(在本例中爲」sameName 「)這將是唯一的搜索字段。當然你可以添加多個字段到你的QueryParser。