我有一个包含二进制文档(比如PDF)的大型数据库,没有TermFreqVector的索引,只有"Store.NO,Index.ANALYZED“。我试着用它来实现短语提示/预测器。我想搜索单个和多个单词,例如:“哪里”或“在哪里”,我希望得到“你在哪里约翰”这样的词。
我很惊讶LUKE能够从创建的索引中逐个恢复文档术语(我已经检查了它的来源,但是.我仍然不知道没有TermFreqVector怎么可能)。有人知道怎么可能吗?对于我的建议者,我有两个选择:
1)使用卢克的机制从我现在的索引中恢复一个文档。(这将是最好的)。
2)仅为短语暗示者创建另一个索引。(然而,目前实现的索引大约需要2-3天和大约4-5Gigs)。我在网络上搜索了解决方案,但是大多数都导致了我无法使用的SOLR。
我已经尝试过很少的解决办法了但是..。我已经藏好了。
如有任何提示,我将不胜感激。
发布于 2013-09-25 09:11:05
好的。经过几次不同的尝试.我这么做了,而且效果很快。:)我所做的。我已经用一个附加选项"TermVector.WITH_POSITIONS“重新索引了我的所有文档,并且我正在使用PrefixQuery直接在索引中搜索术语。然后,我将在文档中搜索所有的位置,并通过地图存储它。然后,我将遍历文档术语,检查术语位置是否为TermPosition <= (建议短语的数量)。
如果你需要举例,请问:)
发布于 2013-09-19 16:04:17
首先,我不建议尝试模仿卢克的文档重建。它是用来调试的。这是昂贵的,复杂的,有损失的。如果您真的想知道它是如何工作的,卢克是开源的,所以获取源代码并查看一下:/src/org/getopt/ Luke /Docrestructor.java。
我看到的短语建议的实现是将短语存储为StringField,并使用SpellChecker查找建议。这将要求您将什么限定为“短语”定义为这个上下文,并分别对它们进行索引。我可能会为此创建另一个字段,而不是一个完全独立的索引,但这取决于您。
https://stackoverflow.com/questions/18890593
复制相似问题