कोई पूर्ण पाठ, MySQL विशेषज्ञ वहां से बाहर हैं?MySQL जुड़ता है और पूर्ण पाठ खोज
मैं एक सवाल कल कैसे एक बहुत मिलती है की, एक सा lazily, मैं वास्तव में एक प्रयास किया था के साथ पूर्ण पाठ खोज का उपयोग करने पर किसी भी सुझाव के लिए पूछ लिखा था।
तब से, मैं एक यह अपने आप माहिर, मेरे पूर्ण-पाठ क्षेत्रों के खिलाफ कुछ सफल परीक्षण प्रश्नों के निर्माण, पर एक अच्छा प्रयास किया है। यदि मैं किसी भी जॉइन का उपयोग नहीं करता हूं, और प्रत्येक फ़ील्ड को व्यक्तिगत रूप से पूछता हूं, तो पूर्ण-पाठ फ़ंक्शंस पूरी तरह से काम करता है और प्रासंगिकता/बुलियन महान प्रदर्शन के साथ भी बहुत अच्छा काम करता है ... लेकिन ... जैसे ही मैं पूर्ण क्वेरी चलाने के लिए अपनी जॉइन जोड़ता हूं , यह हमेशा के लिए चलता है।
किसी को भी मेरी क्वेरी में कुछ भी है कि ऐसा करने के लिए कारण हो सकता है स्पॉट जा सकता, क्योंकि एक शौकिया के रूप में, मैं वास्तव में नहीं देख सकते हैं!
SELECT
photos.photoID,
photos.headline,
photos.dateCreated,
MATCH (people.people) AGAINST ('+sarah +harding' IN BOOLEAN MODE) AS Rel1
FROM photos
LEFT JOIN (photoPeople INNER JOIN people ON photoPeople.peopleID = people.PeopleID)
ON photos.photoID = photoPeople.photoID AND MATCH (people.people) AGAINST ('+sarah +harding' IN BOOLEAN MODE)
WHERE
photos.photoStatus = 'Live'
GROUP BY
photos.photoID
ORDER BY Rel1
यह मेरा सफल, व्यक्तिगत, प्रश्नों में से एक है:
SELECT
photoID,
headline,
dateCreated,
MATCH (caption) AGAINST ('+sarah +harding' IN BOOLEAN MODE) AS Relevance
FROM photos
WHERE
photoStatus = 'Live'
AND
MATCH (caption) AGAINST ('+sarah +harding' IN BOOLEAN MODE)
ORDER BY Relevance
यह DB स्कीमा है:
photos (tbl)
photoID INT(11) Primary Auto-Increment
headline Long-Text
caption Long-Text/FULLTEXT
dateCreated DateTime
people (tbl)
peopleID INT(11) Primary Auto-Increment
people VarChar(255)/FULLTEXT
photoPeople (tbl)
photoID INT(11)
peopleID INT(11)
keywords (tbl)
keywordID INT(11) Primary Auto-Increment
keyword VarChar(255)/FULLTEXT
photoKeyword (tbl)
photoID INT(11)
keywordID INT(11)
photoContributor (tbl)
photoID INT(11)
contributorRef VarChar(100)/FULLTEXT
और ये मेरे प्रिंट व्याख्या बाहर है:
id select_type table type possible_keys key key_len ref rows 1 SIMPLE photos ALL NULL NULL NULL NULL 89830 1 SIMPLE photoContributor ALL NULL NULL NULL NULL 149635 1 SIMPLE photoPeople ALL NULL NULL NULL NULL 110606 1 SIMPLE people eq_ref PRIMARY PRIMARY 4 1 1 SIMPLE photoKeyword ALL NULL NULL NULL NULL 699102 1 SIMPLE keywords eq_ref PRIMARY PRIMARY 4 1
मेरी वेबसाइट आगंतुक को सक्षम होना चाहिए के लिए खोजें: "ब्रैड पिट एंजेलीना जोली डोरचेस्टर होटल धूप का चश्मा @ एमजी" - इसे 'लोगों। लोगों' तालिका से और "फोटो कैप्शन 'तालिका से" ब्रैड पिट "और" एंजेलीना जोली "मिलना चाहिए। इसे 'photos.caption' तालिका से "Dorchester Hotel", 'keyword.keyword' तालिका से "धूप का चश्मा" भी मिलना चाहिए और आखिरकार, इसे 'photoContributor.contributorRef' तालिका में "@MG" मिलना चाहिए।
इस पर कोई मदद कृतज्ञता प्राप्त की जाएगी ...
'चयन व्याख्या जोड़ें ...' अपने प्रश्न – sanmai
के संदर्भ के लिए, यदि आप वास्तव में के लिए कहा बुनियादी जानकारी बदले बिना, एक सवाल पर विस्तार कर रहे हैं, तो आप सिर्फ मूल संपादित करना चाहिए, न कि नए सिरे से शुरू। – Orbling
आपको उन तालिकाओं के लिए स्कीमा पेस्ट करने की आवश्यकता है ('तालिका बनाएं' क्वेरी का परिणाम ठीक होना चाहिए)। इसके अलावा, स्पष्ट होने के लिए, ऐसा लगता है कि आप MyISAM की पूर्ण टेक्स्ट इंडेक्सिंग का उपयोग कर रहे हैं? – TehShrike