Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर के साथ Lucene.Net कॉन्फ़िगर करें

हां, मैंने इसका ठीक वही उपयोग किया है जिसका आप वर्णन कर रहे हैं। हमारे पास दो सेवाएं थीं - एक पढ़ने के लिए, और एक लिखने के लिए, लेकिन केवल इसलिए कि हमारे पास कई पाठक थे। मुझे यकीन है कि हम इसे सिर्फ एक सेवा (लेखक) के साथ कर सकते थे और पाठक को वेब ऐप और सेवाओं में एम्बेड कर सकते थे।

मैंने सामान्य डेटाबेस इंडेक्सर के रूप में lucene.net का उपयोग किया है, इसलिए मुझे जो वापस मिला वह मूल रूप से डीबी आईडी (अनुक्रमित ईमेल संदेशों के लिए) था, और मैंने इसका उपयोग खोज परिणामों को पॉप्युलेट करने के लिए पर्याप्त जानकारी प्राप्त करने के लिए भी किया है या जैसे स्पर्श किए बिना डेटाबेस। यह दोनों मामलों में बहुत अच्छा काम करता है, एसक्यूएल थोड़ा धीमा हो सकता है, क्योंकि आपको बहुत अधिक एक आईडी प्राप्त करना है, एक आईडी आदि का चयन करना है। हमने इसे एक अस्थायी तालिका बनाकर प्राप्त किया (इसमें केवल आईडी पंक्ति के साथ) और एक फ़ाइल से थोक-सम्मिलित करना (जो ल्यूसीन से आउटपुट था) फिर संदेश तालिका में शामिल होना। बहुत तेज था।

लुसीन सही नहीं है, और आपको रिलेशनल डेटाबेस बॉक्स के बाहर थोड़ा सोचना होगा, क्योंकि यह पूरी तरह से एक नहीं है, लेकिन यह जो करता है उसमें बहुत अच्छा है। एक नज़र के लायक, और, मुझे बताया गया है, "ओह, क्षमा करें, आपको अपनी अनुक्रमणिका फिर से बनाने की ज़रूरत है" समस्याएं नहीं हैं जो एमएस एसक्यूएल का एफटीआई करता है।

BTW, हम 20-50 मिलियन ईमेल (और लगभग 1 मिलियन अद्वितीय अटैचमेंट) के साथ काम कर रहे थे, कुल मिलाकर लगभग 20GB ल्यूसीन इंडेक्स, और 250+GB SQL डेटाबेस + अटैचमेंट।

प्रदर्शन शानदार था, कम से कम कहने के लिए - बस सुनिश्चित करें कि आप अपने मर्ज कारकों के बारे में सोचते हैं, और ट्विक करते हैं (जब यह इंडेक्स सेगमेंट को मर्ज करता है)। एक से अधिक सेगमेंट होने में कोई समस्या नहीं है, लेकिन एक बड़ी समस्या हो सकती है यदि आप दो सेगमेंट को मर्ज करने का प्रयास करते हैं, जिसमें प्रत्येक में 1mil आइटम हैं, और आपके पास एक वॉचर थ्रेड है जो बहुत अधिक समय लेने पर प्रक्रिया को मार देता है ... .. (हाँ, इसने हमारे गधे को थोड़ी देर के लिए लात मारी)। इसलिए प्रति चीज़ दस्तावेज़ों की अधिकतम संख्या कम रखें (यानी, इसे अधिकतम पर सेट न करें जैसे हमने किया था!)

संपादित करें कोरी ट्रैगर ने यहां BugTracker.NET में Lucene.NET का उपयोग करने का दस्तावेजीकरण किया।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में पॉलीमॉर्फिक एसोसिएशन को लागू करने का सबसे अच्छा तरीका क्या है?

  2. SQL सर्वर कॉम्पैक्ट की सीमाएँ क्या हैं? (या - एमएस प्लेटफॉर्म पर उपयोग करने के लिए कोई डेटाबेस कैसे चुनता है?)

  3. खिड़की वाले कुल कार्यों के लिए लॉजिकल रीड इतने ऊंचे क्यों हैं?

  4. SQL सर्वर में एक तालिका बनाएँ (T-SQL)

  5. कई स्तंभों पर DISTINCT की गणना करना