我正在做一个项目,我们索引相对较小的文档/句子,我们希望使用大文档作为查询来搜索这些索引。这是一个相对简单的示例:我正在索引文档:
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 中最好的方法是什么?对于简单的例子,我想找到的文本正是输入查询,我使用我自己的分析器 + PhraseQuery 比使用QueryParser.parse(QueryParser.escape(...my large input...))获得更好的结果获得更好的结果-最终创建了一个大的布尔/术语查询。
但是我不能尝试将 PhraseQuery 方法用于现实世界的示例,我认为我必须使用像 ShingleAnalyzerWrapper 这样的单词 N-Gram 方法,但由于我的输入文档可能非常大,组合将变得难以处理.. .
换句话说,我被卡住了,任何想法都将不胜感激:)
PS我没有提到它,但索引小文档的一个烦人的事情是,由于“规范”值(浮点数)仅在 1 个字节上编码,所有 3-4 个单词的句子都得到相同的规范值,所以搜索诸如“AB C”之类的句子会使结果“AB C”和“ABC D”以相同的分数显示。
谢谢 !