我想使用lucene的MemoryIndex(使用4.7.1),但我需要能够添加lucene Fields,以便我可以使用整数字段或StringField之类的东西。
我知道这可以通过添加一个可以包含Lucene Fields的Document在RAMDirectory中实现,但是这可能在MemoryIndex中吗?
答案 0 :(得分:0)
您当然可以在索引中添加字段,而不是Field
s。这对于StringField
和TextField
来说相当简单,因为有一个很好的便捷方法供您使用。对于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);