2009-08-11 18 views
42

मैं एक .NET प्रोजेक्ट के लिए ओपन सोर्स सर्च/इंडेक्सिंग तकनीक पर फैसला करने की कोशिश कर रहा हूं। ऐसा लगता है कि जावा परियोजनाओं के लिए मानक मानक लुसीन है, लेकिन जहां तक ​​नेट का संबंध है, लुसेन.Net प्रोजेक्ट बहुत निष्क्रिय लगता है। क्या यह अभी भी सबसे अच्छा विकल्प है? या क्या अन्य व्यवहार्य विकल्प हैं?सबसे अच्छा और सबसे सक्रिय ओपन सोर्स नेट नेट सर्च टेक्नोलॉजी क्या है?

+4

+1: मुझे इसमें वास्तव में रूचि है। मैंने SQL सर्वर के पूर्ण पाठ अनुक्रमण प्रोसेसर का उपयोग करने के मार्ग को नीचे जाने का प्रयास किया। यह पीडीएफ, डॉक्टर, आदि जैसे बाइनरी फाइलों को खोजने के साथ अच्छी तरह से काम करता है; लेकिन नियमित स्तंभों की खोज करते समय यह कुत्ता धीमा है। 7000 पंक्ति तालिका खोजने के लिए 6 सेकंड, मेरी राय में, अस्वीकार्य है। अभी के लिए मैं सिर्फ LIKE 'value%' सरल खोजों का उपयोग कर रहा हूं जो बहुत तेज़ी से लौटते हैं। – NotMe

उत्तर

23

हालांकि वे 'पूर्ण उड़ा' रिलीज़ नहीं थे (यानी पूर्ण दस्तावेज, वेब साइट अपडेट) Lucene.Net के कुछ समय के लिए, अभी भी अपने एसवीएन भंडार में ताजा काम करता है। उदाहरण के लिए नवीनतम रिलीज (2.3.2) 07/24/09 (see here) में टैग किया गया था। चूंकि विकास अभी भी सक्रिय है, इसलिए मैं इसे नई पूर्ण-पाठ-खोज परियोजनाओं के लिए उपयोग करूंगा।

+0

मुझे लगता है कि यह जवाब होने वाला था। लुसीन। फिर यह है। सभी का धन्यवाद! – jamesaharvey

2

www.searcharoo.net पर एक नज़र डालें। इसमें एक क्रॉलर है, और वर्क स्टेमिंग, इंडेक्सिंग ऑफिस दस्तावेज/पीडीएफ जैसी सुविधाएं हैं। लेखक कोडप्रोजेक्ट आलेखों पर बहुत सक्रिय है और प्रश्नों को बहुत तेज़ी से प्रतिसाद देता है।

6

lucene.net जरूरी रूप से जावा बंद कर देगा क्योंकि यह एक बंदरगाह है। मुझे यह भी पसंद नहीं है कि ल्यूसीन पोर्ट एक सीधी प्रति कैसे है, हालांकि यह मुझे लगता है कि दस्तावेज़ों पर यह आसान बनाता है। यदि आपको सुपर तंग (बाइनरी) एकीकरण की आवश्यकता नहीं है तो Solr का उपयोग करने पर विचार करने के लिए कुछ है। मैंने इसे अच्छी सफलता से पहले इस्तेमाल किया है। यह अभी भी लुसीन द्वारा संचालित है लेकिन मुझे लगता है कि यह बेहतर है क्योंकि इसमें कुछ बेहतर विशेषताएं हैं। आप इसे .NET से HTTP endpoint के माध्यम से उपयोग कर सकते हैं।

खुद से पूछने का एक सवाल यह है कि आपको एक खोज समाधान में वास्तव में क्या चाहिए/चाहिए। खोज को कार्यान्वित करने के कई तरीके हैं और सभी समाधान हर स्थिति के लिए काम नहीं करते हैं।

3

हालांकि इसकी शुद्ध नहीं मैं अपने रूप Solr का उपयोग कर Lucene पर बनाया गया सिफारिश करेंगे और सरल हो जाएगा तथ्य यह रिटर्न एक्सएमएल/HTTP और JSON

6

SQLite FTS3 (पूर्ण पाठ खोज 3) है कि हो सकता है यह देखते हुए एकीकृत करने के लिए वह करो जो आप करना चाहते हैं। मेरे पास इसका सीधा अनुभव नहीं है, लेकिन मेरा मानना ​​है कि इसे कम से कम सरल मामले में लुसीन क्या करता है, यह स्पष्ट रूप से विकसित किया गया था। मुझे विश्वास नहीं है कि आप टोकननाइज़र या कुछ भी बदल सकते हैं (वैसे भी स्रोत कोड संशोधित किए बिना), लेकिन यह एक विकल्प है।

+1

हम अपने उत्पाद में SQLite FTS का उपयोग करते हैं और यह हमारे विशिष्ट मामलों के लिए Lucene.NET की तुलना में बहुत अच्छा और बहुत तेज है। –

11

मैं जानता हूँ कि इस खोलने के स्रोत नहीं है, लेकिन यह एक मुक्त और बहुत व्यापक Microsoft से भेंट है:

Microsoft Search Server 2008 Express

  • बाहर का मिलने वाली बॉक्स प्रासंगिकता।

    स्थानीयकृत इंटरफ़ेस।

    एक्सटेंसिबल खोज अनुभव।

    कोई प्रीसेट दस्तावेज़ सीमा नहीं है।

    निरंतर प्रचार अनुक्रमण।

    आउट ऑफ द बॉक्स अनुक्रमण कनेक्टर्स

    सामग्री के सारांश।

    हाइलाइटिंग हिट करें।

    सर्वश्रेष्ठ शर्त और परिभाषाएं।

    क्वेरी सुधार।

    डुप्लिकेट ढहने।

    संपत्ति द्वारा फ़िल्टर करें।

    भाषा द्वारा फ़िल्टर करें।

    तिथि से क्रमबद्ध करें।

    ई-मेल/आरएसएस अलर्ट

+2

हालांकि, यदि आप खोज सूचकांक के लिए इसका उपयोग करने जा रहे हैं तो डीबी आकार सीमा आसानी से पहुंच जाती है। यह मुख्य रूप से टेक्स्ट-इंडेक्सिंग के लिए भी डिज़ाइन नहीं किया गया है, और टेक्स्ट-इंडेक्सिंग काम कर सकता है, लेकिन यह ल्यूसीन की तरह कुछ की तुलना में खराब प्रदर्शन करेगा। –

+1

दिलचस्प- मुझे नहीं पता था कि एमएस ने इस तरह का एक उत्पाद किया था। – RichardOD

+1

एमएस खोज ... यक! – ADAM

3

मैं समझता हूँ के रूप में, आप अपने मौजूदा डेटाबेस पर की जरूरत है "बस" एक पूर्ण-पाठ सूचकांक, और सिद्धांत रूप में एसक्यूएल सर्वर पूर्ण-पाठ खोज आप के लिए काम किया, लेकिन आपका वर्तमान कार्यान्वयन/सेटअप बहुत धीमा है।

अगर मैं तुम्हें थे, मैं एक पूरी तरह से अलग दृष्टिकोण के लिए जाना नहीं होता (सिर्फ गंदगी अपने डेटाबेस के साथ सिंक में एक बाहरी इंडेक्स तैयार करते हैं, या दोनों आदि से क्वेरी परिणामों में शामिल होने के बारे में सोचते हैं)। SQL सर्वर के साथ प्रदर्शन समस्या को ठीक करने का प्रयास करें, क्योंकि कोई भी गंभीरता से यह नहीं मानता कि 7k पंक्तियों को खोजने के लिए 6sec एक एंटरप्राइज़ क्लास समाधान के लिए अंतिम शब्द है जिसका उपयोग आसपास के कुछ सबसे बड़े डेटाबेस के लिए किया जाता है ... शायद एक नया प्रश्न पूछने का प्रयास करें इस सुविधा के साथ आम नुकसान के बारे में (मैं इस पर एक विशेषज्ञ नहीं हूं), और आप अपने खोज आर्किटेक्चर के पूर्ण पुनर्निर्माण के बजाय एक साधारण फिक्स के साथ समाप्त हो सकते हैं;)

0

तुम सच में नेट आप स्फिंक्स एक कोशिश दे सकते हैं पर जोर देते हैं नहीं है, तो। ओपन सोर्स और सभी प्लेटफॉर्म (विंडोज/लिनक्स) के लिए उपलब्ध है।

4

Lucene.net nHibernate में कार्यान्वित किया जाता है, तो आप भी देख रहे हैं एक हे/आर नक्शाकार के लिए, संयोजन एक गहरी जांच लायक हो सकता है तो।

हम वर्तमान में एक प्रोटोटाइप विकसित करने और विन्यस्त करने Lucene मिनट (हम धाराप्रवाह NHibernate का उपयोग करें) का एक समूह में किया जाता है।

+0

मैं nHibernate को भी कोशिश कर रहा हूं। जानकारी के लिए धन्यवाद। – jamesaharvey

5

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

+1

क्या आपने इस के लिए कोडप्लेक्स प्रोजेक्ट बनाने का विचार किया है? शायद इस स्पष्ट लेकिन आसानी से अनदेखा विकल्प के लिए आवधिक बिल्ड – Mikos

+0

+1 सेट करें, Lucene.NET को देखते हुए मैंने अभी तक इस बारे में सोचा नहीं है; क्या आपको ऐसी किसी भी बाधा का सामना करना पड़ा जो गैर जावा दुकानों के लिए यह मुश्किल बना सकता है या एक ऐसा प्रोजेक्ट के लिए IKVM का उपयोग करने का आपका अनुभव है जो आकार जैसा आसान लगता है? –

+1

@ मिकोस - सुंदर निफ्टी विचार; यदि यह एक परियोजना के साथ व्यवहार्य साबित हो जाता है तो लुसीन का आकार यह इस दृष्टिकोण के लिए एक अच्छी प्राथमिकता हो सकता है - या यह दृष्टिकोण पहले से ही आम है और मैं अभी गायब हो गया हूं? –

1

मैं डॉटल्यूसीन का उपयोग करता था लेकिन कई समस्याओं में भाग गया। एक प्रमुख तथ्य यह था कि इसे चलाने के लिए पूर्ण विश्वास की आवश्यकता थी।

मैं के बाद से SearchAroo का उपयोग कर में ले जाया गया है: http://www.searcharoo.net/

यह एक XML डेटा संग्रह का उपयोग करता है, और मैं अपने प्रदर्शन पाया है बहुत Lucene डॉट के समान होने की।

आप देख रहे हैं एक और विकल्प के लिए, मैं निश्चित रूप से एक बार देख ले चाहते हैं।

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