2012-09-11 13 views
8

में सरणी संग्रहीत करना एक सोलर इंडेक्स में मूल्यों की सरणी कैसे संग्रहीत कर सकता है? मैं विशेष रूप से schema.xml फ़ाइल बनाने की कोशिश कर रहा हूं। इसलिए जैसे,सोलर

ID: 351 
Name: Beatles 
Members: 
    1) Name: John 
     Instrument: Guitar 
    2) Name: Paul 
     Instrument: Guitar 
    3) Name: George 
     Instrument: Bass 
    4) Name: Ringo 
     Instrument: Drums 

MySQL में मैं तीन टेबल होगा::

निम्नलिखित संभावित Solr दस्तावेज़ पर विचार करें

Bands: 
    BandID 
    Name 
People: 
    PersonID 
    Name 
    Instrument 
BandsPeople: 
    BandID references Bands(BandID) 
    PersonID references People(PersonID) 

अवधारणा है कि एक व्यक्ति एक से अधिक बैंड और अन्य के हैं सकता है की अनदेखी MySQL दृष्टिकोण के फायदे, मेरा लक्ष्य सीखना है कि सौर में सरणी कैसे स्टोर करें। बैंड बस एक उदाहरण है और संभवतः उस पर एक अच्छा नहीं है!

कई होने Member एक बहु-मूल्यांकित क्षेत्र होगा स्पष्ट दृष्टिकोण:

<field name="member" stored="true" type="string" multiValued="true" indexed="true"/> 

हालांकि, कि बहु-मूल्यांकित क्षेत्र में ही subvalues ​​की जरूरत है। मुझे स्कीमा को कैसे तैयार किया जाए इस पर कोई दस्तावेज नहीं दिख रहा है। ध्यान दें कि मैं सोलर 4 का उपयोग कर रहा हूं। धन्यवाद।

उत्तर

1

लुसीन पहले से ही शामिल हो रहा है ताकि आप कुछ चेतावनी के साथ उनके साथ डीबी स्कीमा को अपनाने के लिए देख सकें, Grouping and Joining in Lucene/Solr देखें। अंततः सोलर को उस तक पहुंच मिल जाएगी, ongoing work

+0

धन्यवाद, लेकिन जैसा कि कहा गया है कि मेरा इरादा सोलर में एक सरणी को स्टोर करना है, उदाहरण के रूप में दिए गए डेटाबेस को अनुमानित करने का तरीका नहीं है। हालांकि, लुसीन के बारे में जानकारी के लिए +1 वैसे भी। धन्यवाद। – dotancohen

8

कुछ जवाब हैं, लेकिन दुख की बात है कि उनमें से कोई भी multivalued का उपयोग नहीं करता है।

  • उत्तोलन Lucene के नेस्टेड दस्तावेजों (मल-performant हो सकता है)
  • भारी प्रत्येक विकल्प के अनुसार एक दस्तावेज के साथ दस्तावेजों denormalize। फिर लुसीन की ग्रुपिंग सुविधा का उपयोग करें। (यह 'SOLR/Lucene रास्ता' है।)
  • अवधि क्वेरी और ऑफसेट सलाह @ निम्न ब्लॉग के साथ अवधि वेक्टर का पालन करें: http://blog.griddynamics.com/2011/06/solr-experience-search-parent-child.html http://blog.griddynamics.com/2011/07/solr-experience -search-parent-child.html http://blog.griddynamics.com/2011/10/solr-experience-search-parent-child.html
  • अनुक्रमित पहलू नाम बनाएं।

अनुक्रमित पहलू के नाम, अपने डेटा (एक दस्तावेज़) के लिए इस प्रकार दिखाई देगा:

id="351" band="Beatles" 
    member_0="John" instrument_0="Guitar" 
    member_1="Paul" instrument_1="Guitar" 
    ... 
अपेक्षाकृत कम सूचियों के साथ

(सैकड़ों की तुलना में कम), बाद अपने दस्तावेज़ आकार और जटिलता पर सबसे आसान है , लेकिन इस मुद्दे को ग्राहक की गोद में खोज के रूप में तब तक मजबूर करता है।

+0

धन्यवाद, गेब्रियल। मुझे यकीन नहीं है कि गतिशील क्षेत्र दृष्टिकोण एक अच्छा दृष्टिकोण है, हालांकि मैं इस बात से सहमत हूं कि चुनने के लिए कई अन्य दृष्टिकोण नहीं हैं। मैं इसके साथ खेलूँगा, धन्यवाद! – dotancohen

+0

मुझे राय है कि हमें * नहीं * "अच्छा" दृष्टिकोण दिया गया है। बस उसको चुनें जो आपके पर्यावरण के साथ सबसे अनुकूल है। (या ऐसा मत करो।) – inanutshellus

+0

ठीक है, यह स्पष्ट रूप से उपयोग-मामला नहीं था कि लुसीन (या सोलर) के लिए डिज़ाइन किया गया था। संपादित लिंक में ब्लॉग भयानक है, धन्यवाद! – dotancohen