如何使用Lucene查找行号或页码

时间:2012-02-15 05:20:02

标签: lucene

任何人都可以帮助我吗?

对于我的项目,我使用lucene来索引文件。它只给我文件名和位置,没有提及行号和页码。

如果Lucene可以找到行号或页码?请帮帮我怎么做。

1 个答案:

答案 0 :(得分:1)

这最终导致评论太长,所以我只是回答了问题。

您是否正在考虑grep(* nix工具)输出,其中grep一组文档并获得包含与行号和文本匹配的结果集? EG:

46: I saw the brown fox jumping over the lazy dog

如果是这样的话,Lucene不会那样工作。在操作系统上,grep(简化)以串行方式打开每个文档,并针对每个文档内的每行内容运行指定的模式。因此,它可以产生类似我之前列出的东西的输出,因为它正在处理机器上存在的文件。 Lucene表现得与众不同。

使用Lucene索引文件时,Lucene会创建一个inverted index,将每个文档的内容组合成一个高效的结构,使您可以快速查找并查找包含特定信息的文档。反过来,当您对Lucene倒置索引运行查询时,它将返回与查询匹配的所有文档的内部表示以及相关性得分,以提供文档可能对您有用的一些指示,基于查询。它通过对其自己的内部反向索引结构进行操作来实现这一点,而不是像grep那样迭代所有文件。 Lucene不了解行号或页码,所以不,不可能立即用Lucene复制grep。