Java 在从Lucene 3.6更新到Lucene 4.1时,字段似乎已成为二进制字段
将代码从Lucene 3.6转换为Lucene 4.1后出现奇怪的测试失败Java 在从Lucene 3.6更新到Lucene 4.1时,字段似乎已成为二进制字段,java,lucene,Java,Lucene,将代码从Lucene 3.6转换为Lucene 4.1后出现奇怪的测试失败 public void testIndexPuid() throws Exception { addReleaseOne(); RAMDirectory ramDir = new RAMDirectory(); createIndex(ramDir); IndexReader ir = IndexReader.open(ramDir);
public void testIndexPuid() throws Exception {
addReleaseOne();
RAMDirectory ramDir = new RAMDirectory();
createIndex(ramDir);
IndexReader ir = IndexReader.open(ramDir);
Fields fields = MultiFields.getFields(ir);
Terms terms = fields.terms("puid");
TermsEnum termsEnum = terms.iterator(null);
termsEnum.next();
assertEquals("efd2ace2-b3b9-305f-8a53-9803595c0e38", termsEnum.term());
}
返回:
预计:efd2ace2-b3b9-305f-8a53-9803595c0e38
实际数字:[65 66 64 32 61 63 32 2d 62 33 62 39 2d 33 30 35 66 2d 38 61 35 33 2d 39 30 33 35 35 35 63 30 65 33 38]
它似乎是以二进制字段而不是文本字段的形式添加字段,但我检查了,该字段是使用不推荐的
新字段(“puid”,值,Field.Index.NOT\u analysis\u NO\u normals,new KeywordAnalyzer())
那么,这不应该像以前一样工作吗?Doh,我最糟糕的缺失utf8ToString(),行应该是:assertEquals(“efd2ace2-b3b9-305f-8a53-9803595c0e38”,termsEnum.term().utf8ToString());-Paul Taylor 2月19日22时20分,我最糟糕的缺失utf8ToString(),行应该是:assertEquals(“efd2ace2-b3b9-305f-8a53-9803595c0e38”,termsEnum.term().utf8ToString());