Java 获取术语的位置以及位置所属的文档 我刚刚开始和Lucene合作,并被困在中间。

Java 获取术语的位置以及位置所属的文档 我刚刚开始和Lucene合作,并被困在中间。,java,lucene,Java,Lucene,我可以使用来自的代码片段获取搜索词的位置 以及此代码中的文档路径或Id 索引: String path = file.getCanonicalPath(); document.add(new StringField(FIELD_PATH, path, Field.Store.YES)); 搜索: Document document = indexSearcher.doc(scoreDoc.doc); String path = document.get(FIELD_PATH); 如何将这两者

我可以使用来自的代码片段获取搜索词的位置

以及此代码中的文档路径或Id

索引:

String path = file.getCanonicalPath();
document.add(new StringField(FIELD_PATH, path, Field.Store.YES));
搜索:

Document document = indexSearcher.doc(scoreDoc.doc);
String path = document.get(FIELD_PATH);
如何将这两者结合起来以获得相应文档的路径或文档Id以及术语位置


也有类似的问题,但关于此站点或internet上位置的大多数问题都非常陈旧,相应的类也不推荐使用。

您可以通过直接获取位置向量来实现这一点,是的。但你是想突出显示搜索结果还是类似的东西?如果是这样的话,这可能是更简单的解决方案。不,我不想强调。我只需要搜索词及其文档的位置,我在Google上搜索了位置向量,没有发现任何有用/不推荐的内容。你能在这里帮助我吗?要在字段中迭代词,典型的入口点是。用于在枚举中查找所需的术语。IndexReader、getTermVector仅包含“我的位置”术语,而不包含文档Id(或路径)。我应该在这里解释更多我的代码吗?我相信这将是一个更大的XY问题。。。。也许lucene 5.4的position和StringField的简单代码片段可以帮助您从
ScoreDoc
中获取DocID,并从
文档中存储字段值,就像您当前的搜索代码已经显示的那样。然后将检索到的
DocID
传递到
getTermVectors
中,您可以使用它来迭代包含位置的术语向量枚举。