Java 如何从Lucene索引中获得下一个术语?

Java 如何从Lucene索引中获得下一个术语?,java,lucene,Java,Lucene,我从别人创建的Lucene索引开始。我想找到给定单词后面的所有单词。我从索引中提取了感兴趣的术语(org.apache.lucene.index.term),我可以找到包含该术语的文档: segmentTermDocs = segmentReader.termDocs(term); while (segmentTermDocs.next) { doc = segmentReader.document(segmentTermDocs.doc); ... } 我有没有办法在文档中找

我从别人创建的Lucene索引开始。我想找到给定单词后面的所有单词。我从索引中提取了感兴趣的术语(org.apache.lucene.index.term),我可以找到包含该术语的文档:

segmentTermDocs = segmentReader.termDocs(term);
while (segmentTermDocs.next) {
        doc = segmentReader.document(segmentTermDocs.doc);
...
}

我有没有办法在文档中找到术语的位置并提取其后面的术语?

因为在您的情况下,索引n-gram不是一个选项,所以需要一些蛮力。你可以列举这些数据,但这可能非常缓慢


一种更快的方法是实现分而治之的搜索算法,方法是枚举术语,并使用一次检查组。将所有可能的术语分成大小合理的组(比如1000个),并对每个组块和前缀词进行多短语搜索。如果有任何点击,递归地调用子组,直到找到一个词。

这里是

谢谢你的想法!这是用于生成报告的,因此性能不是真正的问题。最后我做了一次暴力搜索,创建了由感兴趣的术语和索引中的其他术语组成的短语。那些有点击率的查询指出了感兴趣的术语之后的术语。