Solr 分组和唯一值
Solr Grouping and Unique values
我正在尝试寻找一种方法来获取基于组的唯一值。这个想法是按 id 分组,然后 return 对值进行分组。
查询参数
fl=valueIwant+myID&group=true&group.field=myId&q=:
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
}]
}
}
]
}
}
这很好,但我想做的是以一种独特的方式 select 'valueIwant'。 group.limit 将 return 文档中的更多值,但它不会是唯一的。有没有办法将 group.limit 限制为仅 return 个唯一的 fl 值?在上面的例子中找到了 6583。我必须将限制扩展到 6583,然后通过 unique 将其缩小。当我有 700 个唯一的 ID,我想将它们与总共 4400 万个文档分组时,这会变得更加复杂。
例如。如果我这样做
fl=valueIwant+myID&group.limit=3&group=true&group.field=myId&q=:
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
},
{
"myID": 123456,
"valueIwant": "Hello World"
}
{
"myID": 123456,
"valueIwant": "Hello World123456"
}]]
}
}
]
}
}
我想要的是文档对 valueIwant 如此独特
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
},
{
"myID": 123456,
"valueIwant": "Hello Planet"
}
{
"myID": 123456,
"valueIwant": "Hello World123456"
}]]
}
}
]
}
}
有办法吗?我正在查看函数,但找不到我需要的任何东西。
谢谢,
-小贩
我能够使用小平面枢轴来做到这一点。在此之后最困难的事情是解析响应,因为它作为一个嵌套非常深的对象返回。你可以在这里看到我的第一个解决方案 和我关于如何让它变得更好的问题 'dynamic'
facet: true,
'facet.mincount': 1,
'facet.sort': 'index',
'facet.limit': 5,
'facet.pivot': 'pivotvalue0, pivotvalue1, pivotvalue2, pivotvalue3'
我正在尝试寻找一种方法来获取基于组的唯一值。这个想法是按 id 分组,然后 return 对值进行分组。
查询参数 fl=valueIwant+myID&group=true&group.field=myId&q=:
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
}]
}
}
]
}
}
这很好,但我想做的是以一种独特的方式 select 'valueIwant'。 group.limit 将 return 文档中的更多值,但它不会是唯一的。有没有办法将 group.limit 限制为仅 return 个唯一的 fl 值?在上面的例子中找到了 6583。我必须将限制扩展到 6583,然后通过 unique 将其缩小。当我有 700 个唯一的 ID,我想将它们与总共 4400 万个文档分组时,这会变得更加复杂。
例如。如果我这样做
fl=valueIwant+myID&group.limit=3&group=true&group.field=myId&q=:
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
},
{
"myID": 123456,
"valueIwant": "Hello World"
}
{
"myID": 123456,
"valueIwant": "Hello World123456"
}]]
}
}
]
}
}
我想要的是文档对 valueIwant 如此独特
"grouped": {
"myID": {
"matches": 7520236,
"groups": [{
"groupValue": "123456",
"doclist": {
"numFound": 6583,
"start": 0,
"docs": [{
"myID": 123456,
"valueIwant": "Hello World"
},
{
"myID": 123456,
"valueIwant": "Hello Planet"
}
{
"myID": 123456,
"valueIwant": "Hello World123456"
}]]
}
}
]
}
}
有办法吗?我正在查看函数,但找不到我需要的任何东西。
谢谢,
-小贩
我能够使用小平面枢轴来做到这一点。在此之后最困难的事情是解析响应,因为它作为一个嵌套非常深的对象返回。你可以在这里看到我的第一个解决方案
facet: true,
'facet.mincount': 1,
'facet.sort': 'index',
'facet.limit': 5,
'facet.pivot': 'pivotvalue0, pivotvalue1, pivotvalue2, pivotvalue3'