我有一个包含大约500.000个文档的索引,其中大约10个文档包含标题"at the moon" ('title'字段)和标签"nasa" ('tag'字段)。当我搜索"at the moon nasa"时,这些文档会出现在搜索结果列表的很靠后的位置。这是因为标题字段没有得到增强,但标签字段得到了相当大的增强。因此,其他带有'nasa'标签的文档优先于几乎匹配整个标题字段的文档。
然而,即使Solr不知道,查询"at the moon nasa"几乎与文档标题"at the moon"匹配。如果我从查询中删除"nasa"部分,文档就会出现在顶部。
有没有办法告诉Solr做一些近似的短语查询?通过bq参数实现某种语法搜索是否有意义,其中我将搜索短语拆分为单词组合,例如:
// PHP-ish pseudocode
$bq[]=title:"at the"^2
$bq[]=title:"at the moon"^3
$bq[]=title:"at the moon nasa"^4
$bq[]=title:"the moon"^2
$bq[]=title:"the moon nasa"^3
$bq[]=title:"moon nasa"^4
这有意义吗?根据它们匹配的查询的多大部分来提升文档有意义吗?
在您做任何其他事情之前,尝试使用带有pf3参数的eDisMax。这将自动为您提供3克。
您可能还对最近的一个vifun项目感兴趣,该项目帮助可视化各种参数的效果。