【发布时间】:2013-06-20 17:06:59
【问题描述】:
我正在开展一个项目,我们为相对较小的文档/句子编制索引,并且我们希望使用大型文档作为查询来搜索这些索引。这是一个相对简单的例子: 我正在索引文档:
docId : 1
text: "back to black"
我想使用以下输入进行查询:
"Released on 25 July 1980, Back in Black was the first AC/DC album recorded without former lead singer Bon Scott, who died on 19 February at the age of 33, and was dedicated to him."
Lucene 中最好的方法是什么?对于简单的例子,我想找到的文本是 exactly 输入查询,我使用自己的分析器 + PhraseQuery 比使用 QueryParser.parse(QueryParser.escape(.. .my large input...)) - 最终创建了一个大的布尔/术语查询。
但我不能尝试将 PhraseQuery 方法用于现实世界的示例,我认为我必须使用像 ShingleAnalyzerWrapper 这样的单词 N-Gram 方法,但由于我的输入文档可能非常大,组合数学将变得难以处理...
换句话说,我被困住了,任何想法都将不胜感激:)
附:我没有提到它,但是索引小文档的一个恼人的事情是,由于“规范”值(浮点数)仅在 1 个字节上编码,所有 3-4 个单词的句子都得到相同的规范值,所以搜索像“A B C”这样的句子使结果“A B C”和“A B C D”显示为相同的分数。
谢谢!
【问题讨论】: