2010-11-29 19 views
6

मैं अपने डेटाबेस से निम्नलिखित अनुक्रमित कहते हैं:सोलर - "समूह द्वारा" और "सीमा" कैसे करें?

====================================== 
| 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    | 
... 

इसके अलावा, "हैलो" के लिए कहते हैं कि उपयोगकर्ता खोजों, जो रिकॉर्ड 1, 2 लौटना चाहिए, और 3. वहाँ से Solr बनाने के लिए "समूह एक रास्ता है "Code फ़ील्ड और एक सीमा लागू करें (कहें, 10 रिकॉर्ड)? मैं कुछ हद तक ग्रुप बाय और एलआईटी के एसक्यूएल समकक्ष की तलाश में हूं।

इसके अलावा, जब यह "समूह द्वारा" करता है, तो मैं इसे सबसे प्रासंगिक दस्तावेज़ चुनना चाहता हूं और उस दस्तावेज़ के Description फ़ील्ड का उपयोग वापसी के हिस्से के रूप में करना चाहता हूं।

बेशक, मैं सिर्फ अपने आवेदन में सोलर सब कुछ वापस कर सकता था और मैं ग्रुप बाय और एलआईटी करने के लिए परिणामों में हेरफेर कर सकता हूं। यदि संभव हो तो मैं ऐसा नहीं करूँगा।

उत्तर

12

सोलर 4.0 में उपलब्ध field collapsing पर एक नज़र डालें। प्रासंगिकता पर समूहों को छंटनी: group.sort=score desc

+6

यह सुविधा भी उपलब्ध Solr v3.3 + – markdsievers

+0

@Karl Johansso में है n django haystack का उपयोग करके यह कैसे किया जा सकता है? 'searchQuerySet() मॉडल (उत्पाद)। समूह (' फ़ील्ड: "शीर्षक" ')' –

+0

यह सोलर के संदर्भ में भी समझाया गया है: https://cwiki.apache.org/confluence/display/solr/Collapse+and + विस्तृत + परिणाम – cheffe

0

http://XXX.XXX.XXX.XXX:8080/solr/autocomplete/select?q=displayterm:new&wt=json&indent=true&q.op=and&fl=displayterm&group=true&group.field=displayterm&rows=3&start=0

नोट:

प्रतिक्रिया: शुरू -> प्रतिक्रिया अपने आईडी शुरू करते हैं। पंक्तियाँ -> आप पंक्तियों की संख्या कैसे देखते हैं।

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"}] 
      }}]}}} 
0

आपकी क्वेरी

  • 'समूह' के लिए निम्न फ़ील्ड जोड़ें:, 'सही'
  • 'group.field': 'स्रोत',
  • 'group.main': 'सही',
  • 'group.limit': 10,
संबंधित मुद्दे