我将 Solr 与使用 SolrNet 的 ASP.NET 应用程序一起使用。
我的索引包含具有不同长度的标题和描述字段的文档。这通常使用 dismax 处理程序进行查询,通过bq
参数将不同的提升应用于每个字段 - 例如。(is_curated:true^100 OR is_curated:false^0) (title:foo^50) (description:bar^30)
.
*:*
当没有指定搜索词时(通过q.alt
参数指定默认搜索词),我想在搜索结果中使标题和描述较短的文档不那么突出。
因此,如果用户搜索“apples”,那么提升应该正常工作,其中匹配的标题和描述较短的文档应该被赋予更大的权重,但如果没有指定搜索词,那么具有短标题和描述的文档应该权重较小。
Solr 查询不一定需要考虑非空查询,因为我可以从 C# 代码执行此检查,并且仅在查询为空时附加用于减少较短字段权重的任何其他参数。
大概我需要使用某种 FunctionQuery 作为提升参数,但任何关于如何实现这一点的建议都将不胜感激。谢谢。