2012-06-28 12 views
6

Solr DataImportHandler के लिए विन्यास फ़ाइलों डेटाबेस, कैसे Solr दस्तावेज़ क्षेत्रों के लिए जिसके परिणामस्वरूप स्तंभों को मैप करने के खिलाफ चलाने के लिए, ज़ाहिर है, मानकों एसक्यूएल प्रश्नों होते हैं और के लिए विन्यास प्रबंध डेटाबेस से कनेक्ट करने के लिए आवश्यक है।Solr DataImport: विभिन्न वातावरण (विकास/स्थिति निर्धारण/उत्पादन)

हमारे परियोजना में, डेटाबेस कनेक्शन मानकों (विशेष रूप से डेटाबेस पासवर्ड) पर्यावरण से पर्यावरण के लिए परिवर्तन है, जो हमें प्रत्येक परिवेश के लिए पूरे विन्यास एक्सएमएल फ़ाइल में से एक थोड़ा अलग प्रतिलिपि बनाए रखने के लिए बाध्य करती है।

वहाँ अलग से SQL स्टेटमेंट्स और घोषणाओं से डेटाबेस कनेक्शन मानकों (विशेष रूप से पासवर्ड) कॉन्फ़िगर करने के लिए एक रास्ता है, इसलिए प्रत्येक विन्यास एक बार और केवल एक बार बनाए रखा है?

उत्तर

2

इस Solr में एक ज्ञात समस्या है।

यदि आप सोलर डॉक, या सोलर एंटरप्राइज़ सर्वर पुस्तक पर देखते हैं, तो वे कहते हैं कि आप key1.properties को key = value के साथ उपयोग कर सकते हैं और अपनी एक्सएमएल कॉन्फ़िगरेशन फ़ाइलों में कुंजी का उपयोग कर सकते हैं ... लेकिन मेरे अनुभव में यह करता है काम नहीं। मैंने इसे कई तरीकों से आजमाया है, इसके बारे में सोलर मेलिंग सूची पर खुले प्रश्न हैं।

तो तुम (एक टेम्पलेट xml फ़ाइल का उपयोग करते हुए और वास्तविक पासवर्ड आदि के साथ की जगह # पासवर्ड #) की तरह बदसूरत समाधान का सहारा लेना है।

+0

मुझे यकीन है कि के लिए पता है कि तुम के माध्यम से मानकों को पारित कर सकते हैं डेटा आयात यूआरएल, लेकिन यह पासवर्ड के लिए भी बेकार है मुझे लगता है ... – javanna

+0

धन्यवाद javanna। यह बेकार है, लेकिन यह इस मामले में हमारे लिए काम करेगा। – jsalvata

4

वास्तव में इस मानक Solr विन्यास का उपयोग किया जा सकता है।

सबसे पहले, आप दोनों को स्थानीय उपयोग करने के लिए solrconfig.xml में अपने डेटा स्रोतों परिभाषित करने की जरूरत [देखें Adding Datasource in Solrconfig]

दूसरे, आप का उपयोग कर XInclude

मैं इस दृष्टिकोण का उपयोग एक अलग फ़ाइल में DIH विन्यास बाह्यरूप कर सकते हैं विन्यास फाइलें और विभिन्न कोरों में कनेक्शन को केंद्रीकृत करने के लिए।


उदाहरण: solrconfig.xml में, जोड़ें:

<xi:include href="../../common-config/local.dih.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 

local.dih.xml कुछ ऐसी दिखाई देगी:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
    <lst name="defaults"> 
    <str name="config">data-config.xml</str> 
    <lst name="datasource"> 
     <str name="name">mongo</str> 
     <str name="type">MongoDataSource</str> 
     <str name="database">myMongoDb</str> 
    </lst> 
    <lst name="datasource"> 
     <str name="name">psql</str> 
     <str name="driver">org.postgresql.Driver</str> 
     <str name="type">JdbcDataSource</str> 
     <str name="url">jdbc:postgresql://localhost:5432/myPsqlDb</str> 
     <str name="user">dbUser</str> 
     <str name="password">dbPassword</str> 
    </lst> 
    </lst> 
</requestHandler> 
+0

धन्यवाद! यही वह है जिसे मैं ढूंढ रहा हूं। – Oyeme

संबंधित मुद्दे