2

所以我试图对索引进行一些术语向量分析,但是当我运行 getTermVectors 时,我总是得到空值。我的索引是使用以下属性创建的。

    type.setIndexed(true);
    type.setTokenized(true);
    type.setStored(true);
    type.setStoreTermVectors(true);
    type.setStoreTermVectorPositions(true);
    type.freeze();

稍后,当我想获取向量时,我运行以下代码

Map<String, Int> termFreqMap = new HashMap<>();
for (String fieldName : fieldNames) {
  final Fields vectors = ir.getTermVectors(docNum);
  ....

并且向量最终在整个循环中为空。我在某个地方犯了一个愚蠢的错误吗?任何帮助将不胜感激!

4

1 回答 1

0

您可能正在索引 TextField。对于需要没有术语向量的索引字段的用户,TextField 是一个便利类。如果您需要术语向量,只需使用字段。由于您需要先创建 FieldType 的实例,将 storeTermVectors 和 tokenizer 设置为 true,然后在 Field 构造函数中使用此 FieldType 实例,因此需要多几行代码。

于 2014-07-18T08:37:23.540 回答