Solr:通过短语查询匹配“在月亮的美国国家航空航天局”和“在月球上”的最佳方式?

时间:2013-03-08 11:55:42

标签: solr phrase dismax

我有大约500,000个文档的索引,其中大约10个文档包含标题“月亮”(“标题”字段)和标记“nasa”(“标记”字段)。当我搜索“在月球nasa”时,这些文档在搜索结果列表中显得相当远。这是因为标题字段没有得到提升,但标记字段得到了相当大的提升。因此,带有“nasa”标签的其他文档优先于通过标题字段几乎匹配整个查询的文档。

然而,即使索尔无法知道,“在月亮美国国家航空航天局”的查询几乎与文件标题“在月球上”相匹配。如果我从查询中删除“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

这是否有意义,根据查询的大部分内容来提升文档是否有意义?

1 个答案:

答案 0 :(得分:3)

在您执行任何其他操作之前,请尝试将eDisMax与pf3 parameter一起使用。这会自动为你做3克。

您最近可能会对vifun project感兴趣,这有助于可视化各种参数的效果。