Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में पूर्ण टेक्स्ट फ़ंक्शन है जो अपेक्षित परिणाम नहीं लौटा रहा है

फुलटेक्स्ट में, सभी गैर-अल्फ़ान्यूमेरिक वर्ण अनुक्रमणिका में हटा दिए जाते हैं और रिक्त स्थान से बदल दिए जाते हैं .तो आपकी खोज में, चूंकि आपके पास "।" स्ट्रिंग में, आप "वेबसाइट" और "नेट" खोज रहे हैं।

आप इसे 2 तरीकों से ठीक कर सकते हैं।

यदि आप मूल डेटा रखते हैं तो आपके पास एक अलग तालिका या अलग फ़ील्ड होना चाहिए जिसमें पूर्ण टेक्स्ट डेटा हो, मूल तालिका से अलग हो।

पूर्ण पाठ तालिका में आप ". . को हटा सकते हैं " और स्टोर करें "वेबसाइटनेट ".

उस स्थिति में, आपको सभी "." को निकालने की आवश्यकता है। क्वेरी करने से पहले खोज स्ट्रिंग से। यदि आप "।" के साथ क्वेरी करना चाहते हैं, तो आपको "।" को प्रतिस्थापित करने की आवश्यकता है। एक वर्ण स्ट्रिंग के साथ - उदाहरण के लिए "डॉट"।

तो इस मामले में आप "वेबसाइटडॉटनेट . स्टोर करेंगे ".

जब आप इस बार खोजते हैं, तो आप सभी "." को बदल देते हैं। क्वेरी में "डॉट" के साथ।

ठीक है अब एक नए क्षेत्र के साथ आपका मामला जहां एफटीएस द्वारा खोजे जाने वाले कॉलम को स्टोर करें:

    ID      DESCRIPTION               DESCFTS
    -----------------------------------------------------
    1   this is a website.        this is a websitedot
    2   a website exists.         a website existsdot
    3   go to mywebsite.net       go to mywebsitedotnet
    4   go to mywebsite.net.      go to mywebsitedotnetdot

फिर आपकी क्वेरी:

declare @search_client nvarchar(100) = 'website'

set @search_client = replace(@search_client, '.', 'dot')

select * from dbo.temp where contains ((DESCFTS), @search_client)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CURSOR के अंदर डायनेमिक SQL क्वेरी कैसे बनाएं?

  2. EXP () SQL सर्वर में उदाहरण

  3. वर्चर (अधिकतम) में कितने वर्ण हैं?

  4. SQL सर्वर ट्री क्वेरी

  5. मैं एसक्यूएल सर्वर में डेट डेटाटाइप का उपयोग कैसे कर सकता हूं?