मैं एक परियोजना है कि रूबी में पूर्ण पाठ खोज की जरूरत पर काम कर रहा है ताकि स्वाभाविक रूप से मैं Solr + Sunspot के साथ शुरू शुरू कर दिया है, लेकिन मैं नहीं कर सकता इसे काम करने के लिए मिलता है। यह सिर्फ दर्द था, उन्हें कनेक्ट करने के बाद, यह पता लगाने की कोशिश की गई कि दस्तावेज़ सही तरीके से अनुक्रमित है या नहीं, रनटाइम क्लासपाथ को समझें ताकि मैं अतिरिक्त विश्लेषक/टोकनेज़र कक्षाएं जोड़ सकूं, config.xml/schema.xml, आदि संपादित कर सकूं। Solr numDocs स्पष्ट रूप से ने कहा कि उन्हें प्राप्त और अनुक्रमित किया गया लेकिन मुझे कोई प्रश्न नहीं मिला। मैंने बस कुछ दिनों के बाद छोड़ दिया, यह एक विन्यास नरक था।
लोचदार खोज + टायर इसे उठाने और चलाने के लिए एक उग्र था, मुझे यह एक घंटे में काम कर रहा था।
लुसीन सिर्फ जावा सर्च लाइब्रेरी है, इसलिए सोलर को एक पूर्ण सेवा खोज ऐप के रूप में विकसित किया गया था, लेकिन सोलर के पास अभी भी एक सामान्य जावा वेबैप का फँसाना है: अत्यधिक जटिल एक्सएमएल कॉन्फ़िगरेशन, स्कीमा-हेवी, एक्सएमएल डॉक्स की अपेक्षा अनुक्रमण के लिए, एक जावा सर्वलेट कंटेनर (जेटी या टोमकैट) की आवश्यकता होती है, जो मेरे लिए विफलता के बहुत से अंक बन जाती है।
लोचदार खोज ल्यूसीन पर भी आधारित है, इसमें एक अंतर्निर्मित सर्वलेट कंटेनर है, इसलिए बस एक डिमन की तरह चलाएं, एक बहुत सीधी आगे जेएसओएन + आरईएसटी एपीआई का उपयोग करें ताकि यह परीक्षण के लिए अच्छा हो और रुबी के लिए अधिक प्राकृतिक फिट हो। यह स्कीमलेस है और यह मेरे लिए कॉन्फ़िगरेशन फ़ाइल संपादित किए बिना भी काम करता है। सब कुछ खूबसूरती से काम किया।
मुझे वास्तव में क्या चाहिए था चीनी खोज और लोचदार खोज पहले से ही प्लगइन के रूप में लुसेन की स्मार्टचीनीएनाइज़र को पैक किया गया था। अगर आपको अनुकूलन के स्तर की आवश्यकता है तो विश्लेषक/टोकनेज़र श्रृंखला को कस्टमाइज़ करना कितना मुश्किल होगा। लोचदार खोज और टायर के लिए आवंटन दोनों शीर्ष पायदान हैं।
टायर (ElasticSearch के लिए रूबी पुस्तकालय)
https://github.com/karmi/tire
आप डेमो बाहर की कोशिश कर सकते हैं, यह एक रेल searchapp स्थापित होगा, ElasticSearch द्विआधारी डाउनलोड करने और इसे चलाने के लिए, तो Webrick स्वचालित रूप से शुरू करते हैं।
$ rails new searchapp -m https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb
अपने सिस्टम पर यह एक जावास्क्रिप्ट इंजन नहीं होने के बारे में शिकायत (रेल 3.2 अब डिफ़ॉल्ट रूप से thereubyracer मणि शामिल हैं?), तो मैं ही था:
$ wget https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb
$ nano rails-application-template.rb
में मणि 'therubyracer' जोड़ें फ़ाइल है, तो (मणि 'टायर' और मणि 'will_paginate' के लिए देखो) ...
$ rails new searchapp -m rails-application-template.rb
अपने ही एप्लिकेशन को विकसित करने के लिए, मैं सिर्फ ElasticSearch टारबॉल downladed और -f स्विच के साथ अग्रभूमि में चलाने (ताकि मैं आसानी से सेंट कर सकते हैं Ctrl-C द्वारा सेशन यह)
$ bin/elasticsearch -f
आप eleasticsearch सिर प्लगइन स्थापित कर सकते हैं एक वेब व्यवस्थापक इंटरफ़ेस
https://github.com/mobz/elasticsearch-head
इसके अलावा
कुछ मुझे पता चला पाने के लिए: यदि आप एक हैं- अगर कई संबंध मॉडल, टायर खोज परिणामों में आपके लिए उन्हें हल नहीं करेगा, यह सिर्फ एक फ्लैट संग्रह देता है। आपके has_many और rel_to रिश्ते सिर्फ पूर्ण ऑब्जेक्ट्स के बजाय संग्रह में ऑब्जेक्ट्स ऑब्जेक्ट होंगे।
सोलर लुसीन के शीर्ष पर एक सेवा परत है। यह सिर्फ इस बात पर निर्भर करता है कि आप आर्किटेक्ट कैसे करना चाहते हैं। –
एक अधिक उपयुक्त तुलना प्रश्न सोलर बनाम लोचदार खोज, या सनस्पॉट बनाम टायर होगा। –