2012-06-15 39 views
1

我在使用SolrNet的ASP.NET应用程序中使用Solr。根据Solr中的字段长度更改文档提示?

我的指数与具有不同长度的标题和描述字段的文件。这通常使用dismax处理程序查询,并通过参数bq将不同的提升应用于每个字段 - 例如。 (is_curated:true^100 OR is_curated:false^0) (title:foo^50) (description:bar^30)

当没有指定搜索词时(默认搜索词*:*通过参数q.alt指定),我想给搜索结果中较短的标题和描述显示较少的文档。

因此,如果用户搜索“苹果”,那么提升应该正常工作,其中较短的标题和描述匹配的文档应该加权得更重,但如果没有指定搜索词,那么文档标题和描述的权重应该较小。

Solr查询不一定需要考虑非空查询,因为我可以从C#代码执行此检查,并且只添加用于在查询为空时减少较短字段的权重的任何附加参数。

大概我需要使用某种形式的刺激参数的FunctionQuery,但对如何实现这一目标的任何建议将最赞赏。谢谢。

+0

每场指数时间提升也是一种选择。你将在c#中有更多的控制来计算增强因子。也执行得更快。 – user1452132

回答

1

Solr的考虑了字段的长度,当它计算得分。

lengthNorm - 在一个较小场比赛得分在更大领域

您可以自定义相似性类别覆盖的行为与比赛高。

相关问题