solr 可以返回函数值(不是 solr 分数或文档字段)吗?

Posted

技术标签:

【中文标题】solr 可以返回函数值(不是 solr 分数或文档字段)吗?【英文标题】:Can solr return function values (not solr score or document fields)? 【发布时间】:2012-04-06 22:13:11 【问题描述】:

我们正在进行一个 solr 查询,其中我们提供了一个自定义函数(这非常复杂)并按该函数的值对结果进行排序。查询类似于:

solr/select?customFunc=complexFunction(querySpecificValue1,querySpecificValue2)&sort_by=$customFunc&fq=......

我们的理解是,我们只能从 solr 中取回文档上的字段和 solr score。有人可以告诉我们是否以及如何获取每个文档的 customFunc 的计算值。由于某些原因,我们无法将 solr score 设置为 customFunc。

【问题讨论】:

【参考方案1】:

这对我有帮助:

/solr/auction-En/select/?q=*:*_val_:"sum(x,y)"&debugQuery=true&version=2.2&start=0&rows=10&indent=on&fl=*,score

你会在调试部分看到函数的值。

【讨论】:

【参考方案2】:

您应该使用fl 参数来选择伪字段、函数等,但这仅在trunk 上支持,它将与Solr 4.0 版本一起发布。看看CommonQueryParameters wiki。 SOLR-2444 问题也可能很有趣。

一个简单的例子:

solr/select?q=*:*&fl=*,customFunc:complexFunction(querySpecificValue1,querySpecificValue2)

【讨论】:

以上是关于solr 可以返回函数值(不是 solr 分数或文档字段)吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何标准化 solr/lucene 分数?

solr 排序与文档分数计算

如何在 SOLR 中按日期排序?

Solr - 如何按地理空间距离排序并返回距离?

如何在 solr 查询中排序之前按分数限制

Solr 高亮是不是还可以指示返回的片段在原始字段中的位置或偏移量?