gpt4 book ai didi

java - 如何使用 TermVector Lucene 4.0

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:03 25 4
gpt4 key购买 nike

在索引方法中,我使用以下行:

Field contentsField = new Field("contents", new FileReader(f), Field.TermVector.YES);

但是,在 Lucene 4.0 中,此构造函数已弃用,应使用 new TextField 而不是 new Field

但是 TextField 的问题在于它在其构造函数中不接受 TermVector

有没有办法在 Lucene 4.0 中使用新的构造函数将词 vector 包含在我的索引中?

谢谢

最佳答案

我有同样的问题,所以我只是简单地创建了自己的字段:

public class VecTextField extends Field {

/* Indexed, tokenized, not stored. */
public static final FieldType TYPE_NOT_STORED = new FieldType();

/* Indexed, tokenized, stored. */
public static final FieldType TYPE_STORED = new FieldType();

static {
TYPE_NOT_STORED.setIndexed(true);
TYPE_NOT_STORED.setTokenized(true);
TYPE_NOT_STORED.setStoreTermVectors(true);
TYPE_NOT_STORED.setStoreTermVectorPositions(true);
TYPE_NOT_STORED.freeze();

TYPE_STORED.setIndexed(true);
TYPE_STORED.setTokenized(true);
TYPE_STORED.setStored(true);
TYPE_STORED.setStoreTermVectors(true);
TYPE_STORED.setStoreTermVectorPositions(true);
TYPE_STORED.freeze();
}

// TODO: add sugar for term vectors...?

/** Creates a new TextField with Reader value. */
public VecTextField(String name, Reader reader, Store store) {
super(name, reader, store == Store.YES ? TYPE_STORED : TYPE_NOT_STORED);
}

/** Creates a new TextField with String value. */
public VecTextField(String name, String value, Store store) {
super(name, value, store == Store.YES ? TYPE_STORED : TYPE_NOT_STORED);
}

/** Creates a new un-stored TextField with TokenStream value. */
public VecTextField(String name, TokenStream stream) {
super(name, stream, TYPE_NOT_STORED);
}

希望对你有帮助

关于java - 如何使用 TermVector Lucene 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com