Solr - how to "group by" and "limit"?
Solution 1
Have a look at field collapsing, available in Solr 4.0. Sorting groups on relevance: group.sort=score desc
.
Solution 2
add the following field to your query
- 'group':'true',
- 'group.field':'source',
- 'group.main':'true',
- 'group.limit':10,
Solution 3
Note:
Response: start -> response start your id. rows -> how do you wat number of rows .
Exp
1 step
&start=0&rows=3
2 step
&start=3&rows=3
3 step
&start=6&rows=3
etc.
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"fl":"displayterm",
"indent":"true",
"start":"0",
"q":"displayterm:new",
"q.op":"and",
"group.field":"displayterm",
"group":"true",
"wt":"json",
"rows":"3"}},
"grouped":{
"displayterm":{
"matches":231,
"groups":[{
"groupValue":null,
"doclist":{"numFound":220,"start":0,"docs":[
{
"displayterm":"Professional News"}]
}},
{
"groupValue":"general",
"doclist":{"numFound":1,"start":0,"docs":[
{
"displayterm":"General News"}]
}},
{
"groupValue":"delhi",
"doclist":{"numFound":2,"start":0,"docs":[
{
"displayterm":"New Delhi"}]
}}]}}}
StackOverflowNewbie
Updated on March 26, 2020Comments
-
StackOverflowNewbie about 4 years
Say I indexed the following from my database:
====================================== | Id | Code | Description | ====================================== | 1 | A1 | Hello world | | 2 | A1 | Hello world 123 | | 3 | A1 | World hello hi | | 4 | B1 | Quick fox jumped | | 5 | B1 | Lazy dog | ...
Further, say the user searches for "hello", which should return records 1, 2, and 3. Is there a way to make Solr "group by" the
Code
field and apply a limit (say, 10 records)? I'm somewhat looking for a SQL counterpart of GROUP BY and LIMIT.Also, when it does this "group by", I want it to choose the most relevant document and use that document's
Description
field as part of the return.Of course, I could just have Solr return everything to my application and I can manipulate the results to do the GROUP BY and LIMIT. I'd rather not do this if possible.
-
markdsievers over 12 yearsThis feature is also available in Solr v3.3+
-
Admin almost 11 years@Karl Johansson how can that be done using django haystack? like
searchQuerySet().models(Product).group('field:"title"')
-
cheffe over 8 yearsThis is also explained in Solr's reference: cwiki.apache.org/confluence/display/solr/…