2008-09-03 22 views
14

क्या आप कुछ हल्के वजन अस्पष्ट पाठ खोज पुस्तकालय का सुझाव दे सकते हैं?लाइटवेट फ़ज़ी खोज लाइब्रेरी

मैं क्या करना चाहता हूं उपयोगकर्ताओं को टाइपो के साथ खोज शब्दों के लिए सही डेटा खोजने की अनुमति देना है।

मैं ल्यूसीन जैसे पूर्ण-पाठ खोज इंजन का उपयोग कर सकता हूं, लेकिन मुझे लगता है कि यह एक ओवरकिल है।

संपादित करें:
मैं तार की एक बड़ी सूची है:

प्रश्न अधिक यहाँ स्पष्ट करना है कि पुस्तकालय के लिए एक मुख्य परिदृश्य है। मैं इस सूची में खोज करने में सक्षम होना चाहता हूं (एमएसवीएस 'इंटेलिजेंस जैसे कुछ) लेकिन इस सूची को स्ट्रिंग द्वारा फ़िल्टर करना संभव होना चाहिए जो इसमें मौजूद नहीं है लेकिन सूची में मौजूद कुछ स्ट्रिंग के लिए पर्याप्त है।
उदाहरण:

  • लाल
  • ग्रीन
  • ब्लू

जब मैं एक पाठ बॉक्स में 'ग्रेन' या 'Geen' टाइप करें, मैं परिणाम में देखने के लिए 'ग्रीन' चाहते हैं सेट।

अनुक्रमित डेटा के लिए मुख्य भाषा अंग्रेजी होगी।

मुझे लगता है कि उस कार्य के लिए ल्यूसीन भारी है।

अद्यतन:

मैं एक मेरी आवश्यकताओं से मेल खाने वाले उत्पाद मिल गया। यह ShuffleText है।
क्या आप कोई विकल्प जानते हैं?

उत्तर

0

@aku - काम करने वाले साउंडएक्स पुस्तकालयों के लिंक पृष्ठ के निचले हिस्से में ठीक हैं।

लेवेनशेटिन दूरी के लिए, Wikipedia article on that में नीचे सूचीबद्ध कार्यान्वयन भी हैं।

1

साउंडएक्स अपने एन्कोडिंग में बहुत 'अंग्रेजी' है - डेच-मोकोटॉफ कई नामों, विशेष रूप से यूरोपीय (जर्मनिक) और यहूदी नामों के लिए बेहतर काम करता है। मेरी यूके केंद्रित दुनिया में, मैं इसका उपयोग करता हूं।

विकी here

3

लुसेन बहुत स्केलेबल — है जिसका अर्थ है कि छोटे अनुप्रयोगों के लिए भी अच्छा है। यदि आप की जरूरत है तो आप स्मृति में एक सूचकांक बहुत जल्दी बना सकते हैं।

अस्पष्ट खोज के लिए, आपको वास्तव में यह तय करने की आवश्यकता है कि आप किस एल्गोरिदम का उपयोग करना चाहते हैं। सूचना पुनर्प्राप्ति के साथ, मैं सफलतापूर्वक ल्यूसीन के साथ n-gram तकनीक का उपयोग करता हूं। लेकिन यह एक विशेष इंडेक्सिंग तकनीक है, न कि "पुस्तकालय"।

अपने आवेदन के बारे में और जानने के बिना, उपयुक्त पुस्तकालय की सिफारिश करना आसान नहीं होगा। आप कितना डेटा खोज रहे हैं? डेटा क्या प्रारूप है? डेटा कितनी बार अद्यतन किया जाता है?

1

यदि आप डेटाबेस का उपयोग करना चुन सकते हैं, तो मैं PostgreSQL और उसके fuzzy string matching functions का उपयोग करने की सलाह देता हूं।

यदि आप रूबी का उपयोग कर सकते हैं, तो मैं amatch library में देखने का सुझाव देता हूं।

1

आप अपने विकास मंच निर्दिष्ट नहीं किया, लेकिन अगर इसके पीएचपी तो सुझाव है कि आप ZEND Lucene lubrary को देखो:

http://ifacethoughts.net/2008/02/07/zend-brings-lucene-to-php/ http://framework.zend.com/manual/en/zend.search.lucene.html

इसे अपनी अब तक Lucene जावा पर की तुलना में हल्का दीपक के रूप में, और आसानी से अन्य फाइल प्रकारों के लिए बढ़ाया जा सकता है, बशर्ते आप एक रूपांतरण लाइब्रेरी या सीएमडी लाइन कनवर्टर पा सकें - ऐसा करने के लिए आसपास के बहुत सारे ओएसएस समाधान हैं।

1

वॉल्यूटिल का प्रयास करें - लुसीन एपीआई पर आधारित - एसक्यूएल सर्वर और ओरेकल डीबी में एकीकृत। आप किसी भी प्रकार की अनुक्रमणिका बना सकते हैं और फिर इसका उपयोग कर सकते हैं। सरल खोज के लिए आप walnutilsoft से कुछ विधियों का उपयोग कर सकते हैं, अधिक जटिल खोज मामलों के लिए आप लुसीन एपीआई का उपयोग कर सकते हैं। वेब आधारित उदाहरण देखें जहां Walnutil उपकरण से बनाए गए इंडेक्स का उपयोग किया गया था। इसके अलावा आप जावा और सी # पर लिखे गए कुछ कोड उदाहरण देख सकते हैं जिन्हें आप विभिन्न प्रकार की खोज बनाने के लिए इसका उपयोग कर सकते हैं। यह उपकरण मुफ्त है। http://www.walnutilsoft.com/

0

एक शक्तिशाली, हल्के समाधान sphinx है।

यह लुसीन छोटा है और यह असंबद्धता का समर्थन करता है।

यह ग में लिखा है ++, यह तेज है, लड़ाई-परीक्षण किया है, हर env के लिए पुस्तकालयों है और यह इस लिंक out.It Levenshtein दूरी मैट्रिक्स का उपयोग करता है, लेकिन बहुत तेजी से होता है जैसे craigslists.org

2

मुझे यकीन नहीं है कि ल्यूसीन अस्पष्ट खोज के लिए कितनी अच्छी तरह उपयुक्त है, कस्टम लाइब्रेरी बेहतर विकल्प होगी। उदाहरण के लिए, यह खोज जावा में की जाती है और बहुत तेज़ काम करती है, लेकिन यह इस तरह के कार्य के लिए कस्टम है: http://www.softcorporation.com/products/people/

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