Solr语言 - 需要在排序参数内进行提升



我有一个solr文档列表,它将有2个字段groupId和assetId。我想要的是,列表的顺序应该是所有的groupId文档在一起,并在其中,它应该根据资产编号放置。这个场景很容易通过修改排序参数来实现。

sort=groupId asc,assetId asc

但我接下来想要的是,几个groupId应该被提升并首先显示。

所以我的问题是如何在排序参数中提到这一点,即与其他组相比,提高一些组id。并且每个groupId部分将根据assetId的值在内部排序。

通过例子:

Solr中的数据:

GroupId AssetId
 1      A
 2      A
 1      C
 1      B
 3      C
 3      B
 2      C
 3      A
 2      B

sort=groupId asc,assetId asc

会生成

GroupId AssetId
1       A
1       B
1       C
2       A
2       B
2       C
3       A
3       B
3       C

,而我需要的是groupId 3和1应该提高,以显示他们之前2。在每个groupId 3、1和2中的排序应该是assetId。

GroupId AssetId
3       A
3       B
3       C
1       A
1       B
1       C
2       A
2       B
2       C

仅供参考,我正在使用Solr与Liferay和groupId,需要提升是一个动态数字,即它取决于当前登录到Liferay的用户。是否有可能在排序参数中以任何方式提到提升,以指定排序字段的哪个值更重要?

我当时已经解决了这个问题。我在排序参数中使用了Solr的函数查询概念。查询({! v = 3 1 "})

从概念上讲,它就像下面的3和1是我的groupId,需要在groupId的其余部分之上。由于我们已经添加了另外两个排序参数groupId和assetId,它基本上会提升这两个groupId,然后在每个groupId中,它将进一步对assetId进行排序。

sort=query({!v="groupId:3^10.0 groupId:1^5.0"}) desc, groupId asc,assetId asc

注意:我不记得确切的语法了。因此,请深入了解函数查询概念并获得确切的语法。

相关内容

  • 没有找到相关文章

最新更新