2009-02-27 17 views
5

खोज शब्द दर्ज करते समय उपयोगकर्ता ने एक स्थान को याद करते समय कैसे पहचान सकता हूं? उदाहरण के लिए, यदि उपयोगकर्ता "usbcable" में प्रवेश करता है, तो मैं "यूएसबी केबल" खोजना चाहता हूं। मैं पूर्ण शब्दों से मेल खाने के लिए MySQL में एक REGEX खोज कर रहा हूं।गुम जगह को पहचानें

मेरे पास एक खोज में उपयोग किए जाने वाले प्रत्येक शब्द के साथ एक सारणी है, इसलिए मुझे पता है कि "यूएसबी" और "केबल" वैध शब्द हैं। क्या एक WHERE क्लॉज बनाने का कोई तरीका है जो मुझे उन सभी पंक्तियों को देगा जहां शब्द स्ट्रिंग के हिस्से से मेल खाता है?

कुछ इस तरह:

SELECT st.term 
FROM SearchTerms st 
WHERE 'usbcable' LIKE '%' + st.term + '%' 

या किसी अन्य विचार?

+0

कि क्वेरी काम नहीं करता है? –

+0

ठीक है, मैंने पोस्ट करने से पहले इसका परीक्षण किया होगा। वह क्वेरी काम नहीं करती है, लेकिन एक CONCAT के साथ ऐसा करता है: कंसैट ('%', st.term, '%') जैसी 'usbcable' कहां है। मुझे लगता है कि यह सबसे सरल, और सबसे प्रासंगिक (मेरी साइट के लिए विशिष्ट) है, जाने का तरीका है। – Yisroel

उत्तर

5

Text SegmentationNatural Language Processing का हिस्सा है, और यह है कि आप इस विशिष्ट उदाहरण में क्या खोज रहे हैं। इसका उपयोग सर्च इंजन और वर्तनी जांचकर्ताओं में किया जाता है, इसलिए आपके पास ओपन सोर्स स्पेल चेकर्स और सर्च इंजन को देखकर उदाहरण स्रोत कोड के साथ कुछ भाग्य हो सकता है।

वर्तनी जांच किसी भी तरह से विचार करने के लिए सही प्रतिमान हो सकती है, क्योंकि आपको पहले यह जानने की आवश्यकता है कि यह एक वैध शब्द है या नहीं, इसे अलग करने की कोशिश करने से पहले।

-Adam

0

टिप्पणी में प्रकाशित किया गया था, लेकिन मैं इसे महत्वपूर्ण एक जवाब के रूप को लाने के लिए सोचा:

कि क्वेरी काम नहीं करता है? - साइमन Buchan

इसके बाद:

ठीक है, मैं यह परीक्षण किया है चाहिए इससे पहले कि मैं तैनात। यह क्वेरी काम नहीं करती है, लेकिन एक कंकैट के साथ ऐसा करता है, ऐसा है: जहां 'यूएसबीकेबल' जैसे कॉन्सैट ('%', st.term, '%')। मुझे लगता है कि यह सबसे सरल है, और सबसे प्रासंगिक (मेरे साइट के लिए विशिष्ट), जाने का तरीका। - arnie0674

निश्चित रूप से इस आवेदन के लिए पाठ विभाजन की तुलना में कहीं आसान ...

-Adam

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