代码1:
String path="duplicate";
IndexWriter writer=new IndexWriter(path,new StandardAnalyzer());
Document doc1=new Document();
Field name1=new Field("name","zhangle",Field.Store.YES,Field.Index.TOKENIZED);
Field name2=new Field("name","liwei",Field.Store.YES,Field.Index.TOKENIZED);
Field name3=new Field("name","wangwu",Field.Store.YES,Field.Index.TOKENIZED);
doc1.add(name1);
doc1.add(name2);
doc1.add(name3);
writer.addDocument(doc1);
writer.close();
以上代码为doc1添加了三个重复的name字段,它与以下代码相同功能.
代码2:
String path="duplicate";
IndexWriter writer=new IndexWriter(path,new StandardAnalyzer());
Document doc1=new Document();
Field name1=new Field("name","zhangle liwei wangwu",Field.Store.YES,Field.Index.TOKENIZED);
doc1.add(name1);
writer.addDocument(doc1);
writer.close();
name字段使用StandardAnalyzer分词,分为三个词.与重复建三个field对象功能相同
唯独在获取字段值时不同,代码1需要使用doc.getValues("name")获取一个字符数组([zhangle, liwei, wangwu])
代码2需要使用doc.get("name")获取一个字符串("zhangle liwei wangwu")