当前位置: 首页 > 知识库问答 >
问题:

如何让Lucene的机器工作?

赖运珧
2023-03-14

我正试图利用http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java我在下一行遇到了一个NullPointerException

final Fields vectors = ir.getTermVectors(docNum);

我不知道为什么会这样,所以任何解释都很棒。为了清楚起见,我将在下面发布整个方法,以及早期的ir声明。

private static IndexReader ir;


public static PriorityQueue<Object[]> retrieveTerms(int docNum) throws IOException {
Map<String, Int> termFreqMap = new HashMap<>();
for (String fieldName : fieldNames) {
  final Fields vectors = ir.getTermVectors(docNum);
  final Terms vector;
  if (vectors != null) {
    vector = vectors.terms(fieldName);
  } else {
    vector = null;
  }

  // field does not store term vector info
  if (vector == null) {
    Document d = ir.document(docNum);
    StorableField[] fields = (StorableField[]) d.getFields(fieldName);
    for (StorableField field : fields) {
      final String stringValue = field.stringValue();
      if (stringValue != null) {
        addTermFrequencies(new StringReader(stringValue), termFreqMap, fieldName);
      }
    }
  } else {
    addTermFrequencies(termFreqMap, vector);
  }
}

return createQueue(termFreqMap);

}

共有1个答案

庄浩言
2023-03-14

愚蠢的我,我没有正确初始化我的索引阅读器。通过这样做得到了它的工作!

 类似资料:
  • 我试图在一个新的monodroid项目中引用servicestack DLL,但我遇到了构建错误。 我从这里抓取了DLL: https://github.com/ServiceStack/ServiceStack/tree/master/release/latest/MonoDroid 我得到了错误 /Library/Frameworks/Mono.framework/Versions/2.10.

  • 它从不完全加载,最后总是说等待300秒才能加载。我尝试过不同的方法来修复它,但都不管用。如何让它真正加载?

  • 我一直在使用Selenium Web驱动程序进行一些工作,然而,我刚刚创建了第二个项目,但不允许我将Chrome驱动程序库导入java类,然而,我已经在java项目中添加了它们。 我有点困惑,因为第一个项目没有问题,而且它与第二个项目具有相同的配置,所以我不确定为什么第一个项目工作,而第二个项目没有。 单击此处查看图像以便更好地理解

  • 我正在尝试使用java(JDA)设置discord bot,但在服务器上使用它时遇到了一些问题。它适用于直接消息,但由于某些原因,它不能在服务器上使用。我通过intellij将该项目设置为Maven项目。 我是从一个 这在DM中运行良好,但在服务器中不起作用。 以下是我迄今为止所尝试的: 1. 我把它从收到的消息改为: 这在我的服务器上仍然不起作用,在dms中也不起作用。 2.我更改了bot的权限

  • 问题内容: 我已经做了几次尝试,以使包注释@ParametersAreNonnullByDefault在maven项目中为我工作,但没有成功。有人可以共享一个指向最小/示例maven项目的链接吗(或发布了pom.xml和package- info.java和demo类)? 我说的是让findbugs处理器为我实施它。 问题答案: 如何申请 在您的程序包中创建一个文件,以在其中强制执行所需的行为。

  • 我想用Java robot按住一把钥匙一段时间。我读过其他类似的文章,但都不管用。反复按键只会导致按键无法释放。 以下是我到目前为止的代码(由于只按了一次键,所以无法工作):