Lucene MemoryIndex:添加Lucene Field

时间:2014-04-16 10:40:38

标签: java lucene

我想使用lucene的MemoryIndex(使用4.7.1),但我需要能够添加lucene Fields,以便我可以使用整数字段或StringField之类的东西。

我知道这可以通过添加一个可以包含Lucene Fields的Document在RAMDirectory中实现,但是这可能在MemoryIndex中吗?

1 个答案:

答案 0 :(得分:0)

您当然可以在索引中添加字段,而不是Field s。这对于StringFieldTextField来说相当简单,因为有一个很好的便捷方法供您使用。对于StringField,例如:

index.addField("thestring", text, new KeywordAnalyzer());

对于TextField

index.addField("sometext", text, new StandardAnalyzer(Version.LUCENE_47));

对于IntField和其他数字,您需要自己生成令牌流。 NumericTokenStream是感兴趣的类别:

NumericTokenStream stream = new NumericTokenStream();
stream.setIntValue(myInt);
index.addField("aninteger", stream);