2012-09-07 7 views
6

मुझे एक समस्या है जब मैं एक सिंगल कोट और तारांकन वाइल्डकार्ड, यानी "लेवी" * के साथ स्ट्रिंग का उपयोग करके बूलियन मोड में पूर्ण पाठ खोज करने का प्रयास करता हूं: ऐसा लगता है "एस" से शुरू होने वाले सभी शब्दों के लिए, जैसे "भाले", जब तक मुझे पता है, उद्धरण शब्द का हिस्सा माना जाना चाहिए जबकि दो सिंगल कोट्स ('') एक शब्द विभाजक होगा ... लेकिन शायद मैं गलत हूँ।एक एकल उद्धरण के साथ पूर्ण पाठ क्वेरी

कृपया, उदाहरण के लिए यहाँ देखो: http://www.sqlfiddle.com/#!2/3dd3e/2/0 - दूसरी पंक्ति वहाँ

हो should't मैं जो मैं चाहता कैसे कर सकता है?

उत्तर

1

यह आप अपने उदाहरण से दो पंक्तियों देता है:

SELECT * 
FROM ft 
WHERE MATCH(value) AGAINST ('"levi\'s" lacost*' IN BOOLEAN MODE) 

अंत में http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html में, यह डबल कोट्स में सटीक मिलान के बारे में बात करता है। फिर आप केवल एक उद्धरण से बचें और आप कर चुके हैं।

कोष्ठकों का उपयोग करके आप तारांकन जोड़ सकते हैं:

WHERE MATCH(value) AGAINST ('(levi\'s)* lacost*' IN BOOLEAN MODE) 
+0

समस्या यह है कि इस प्रश्नों में से कोई भी यानी "levi'strauss" मिलेगा है, डबल कोट्स के बाद तारांकन कुछ भी नहीं करता है ("लैकोस्ट" * भी काम नहीं करेगा) – Borgtex

+0

मुझे कहना है कि मैंने कभी भी 'MATCH() 'का उपयोग नहीं किया है। मैं इसके बजाय नियमित अभिव्यक्ति का उपयोग करूंगा। –

+1

यह ऐसा लगता है कि कोष्ठक का उपयोग करना बेहतर मदद कर रहा है .... (अद्यतन उत्तर देखें) –

1

मुझे लगता है कि आप स्ट्रिंग आप अगर यह एकल उद्धरण

शामिल

उदाहरण के लिए खोज करने की आवश्यकता बोली को दोगुना करना चाहिए: MATCH(value) AGAINST ('"levi\'s"* lacost*' IN BOOLEAN MODE)

0

पिग्गी एकल उद्धरण को संभालने के लिए बार्ट की टिप्पणी पर समर्थन है और अभी भी एक की तरह के रूप में खोज समारोह है, मैं प्रत्येक शब्द अलग रखा जाता। तो तर्क यह है कि - यदि किसी शब्द में एक एकल उद्धरण है, तो इसे कोष्ठक के साथ लपेटें, अन्यथा इसे छोड़ दें। यहाँ मदद मिल सकती है

$term = preg_replace("/[']/", "\'", $term); 
$terms = explode(' ',$term); 
foreach ($terms as &$t) { 
    if (strpos($t, "'")) { 
     $t = "(".$t.")"; 
    } 
} 
$term = implode(' ',$terms); 

मेरी मैच के खिलाफ ('$ अवधि' बूलियन मोड में है कुछ php कोड है

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

  • कोई संबंधित समस्या नहीं^_^