2012-05-01 14 views
5

पर "प्रक्रिया" नहीं करता है जब मैं रन/solr/dataimport? Command = full-import यह सभी दस्तावेज़ों को संसाधित करता है। हालांकि, जब मैं एक डेल्टा आयात (/ Solr/dataimport? कमान = डेल्टा-आयात) चलाने इसे सही ढंग से अपडेट किए गए डेटा (रिटर्न "<str name="Total Rows Fetched">1</str>") को पहचानती है लेकिन (रिटर्न "<str name="Total Changed Documents">0</str>")सोलर डेल्टा आयात "fetches" लेकिन

इसके किसी भी पर कार्रवाई नहीं करता है मेरी डेटा-config.xml इस तरह दिखता है:

<entity name="category" pk="catID" 
query="SELECT CONCAT('c_',catID) ID, catID, catName FROM category" 
deltaImportQuery="SELECT CONCAT('c_',catID) ID, catID, catName FROM category WHERE catID = '{$dataimporter.delta.catID}'" 
deltaQuery="SELECT catID FROM category WHERE catDate &gt; '${dataimporter.last_index_time}'"/> 

(ध्यान दें - वहाँ मेरी concat के लिए एक अलग कारण है)

क्यों पूर्ण आयात प्रक्रिया जबकि डेल्टा आयात फ़ेच लेकिन संसाधित नहीं कर देता है?

+0

इसका मतलब क्या है "लेकिन इसमें से कोई भी संसाधित नहीं करता है"? शायद आपको एक स्पष्ट समाधान' प्रतिबद्ध 'आदेश जारी करने की आवश्यकता है? –

+0

मेरा मतलब है कि solr नहीं करता है अद्यतन - अवधि प्राप्त करें। पूर्ण-आयात स्वचालित रूप से क्यों किया जाता है और डेल्टा-आयात नहीं करता है? वैसे, सह चला रहा है mmand/solr/dataimport? command = डेल्टा-आयात और प्रतिबद्ध = सत्य अभी भी काम नहीं करता है ... – YWSW

+0

जिसका मतलब है कि आपको इंडेक्स में नए दस्तावेज़ नहीं दिख रहे हैं? क्या आप अभी भी 'प्रतिबद्ध' ऑपरेशन को मजबूर करने के बाद भी सच हैं? –

उत्तर

0

ऐसा इसलिए है क्योंकि एक पूर्ण-आयात आपके डेटाबेस में प्रत्येक दस्तावेज़ को संसाधित करेगा।

एक डेल्टा-आयात केवल उन दस्तावेज़ों को संसाधित करता है जिन्हें आपके किसी भी प्रकार के अंतिम आयात के बाद संशोधित किया गया है (आपके मामले में, catDate फ़ील्ड द्वारा निर्धारित)।

उदाहरण के लिए, मान लीजिए कि आप 2012-09-09 12:15:38 पर पूर्ण आयात करते हैं।

अगला, आप 2012-09-10 12:15:38 पर डेल्टा-आयात करते हैं। केवल उन दस्तावेज़ों जिनमें बिल्ली कटौती है> '2012-09-09 12:15:38' संसाधित की जाएगी।

विचार यह है कि डेल्टा-आयात हर बार पूर्ण आयात करने के बिना कभी भी बदलती अनुक्रमणिका को बनाए रखने का एक तरीका है।

+0

धन्यवाद। लेकिन समस्या यह थी कि डेल्टा आयात कुछ भी आयात नहीं कर रहा था – YWSW

0

आपके मामले में, डेल्टा क्वेरी ठीक काम करती है लेकिन आपकी डेल्टा-आयात क्वेरी विफल हो जाती है।

इसका कारण यह है कि आप दे दिया है,

deltaImportQuery = "concat का चयन करें ('ग _', CatID) आईडी, CatID, catName श्रेणी से कहां CatID = '{$ dataimporter.delta.catID}'"

लेकिन यह के रूप में दी जानी चाहिए,

deltaImportQuery = "concat ('ग _', CatID) आईडी, CatID, catName श्रेणी का चयन करें जहां से CatID = '$ {dataimporter.delta.catID}'"

5

'{$dataimporter.delta.catID}', यहां catID फ़ील्ड परिभाषाओं में नाम विशेषता का मान होना चाहिए। मुझे एक ही समस्या थी, फिर एहसास हुआ कि संदर्भित चर क्षेत्र का नाम है ... मुझे उम्मीद है कि यह काम करता है।

1

मैं एक ही मुद्दा था और पता लगा कि deltaImportQuery केस संवेदी है

"आईडी"

deltaImportQuery = "अस्थायी से आईडी, राज्य, नाम, स्थान, शहर का चयन करें जहां आईडी के रूप में मेरी आईडी कॉलम बनाया गया = '$ {dih.delta.ID}