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

SQL सर्वर पूर्ण पाठ खोज एस्केप वर्ण?

बुरी खबर:कोई रास्ता नहीं है। अच्छी खबर:आपको इसकी आवश्यकता नहीं है (क्योंकि यह वैसे भी मदद नहीं करेगा)।

मुझे अपनी परियोजनाओं में से एक पर इसी तरह की समस्या का सामना करना पड़ा है। मेरी समझ यह है कि पूर्ण-पाठ अनुक्रमणिका बनाते समय, SQL सर्वर सभी विशेष वर्णों को शब्द सीमांकक के रूप में मानता है और इसलिए:

  1. इस तरह के चरित्र वाला आपका शब्द पूर्ण-पाठ अनुक्रमणिका में दो (या अधिक) शब्दों के रूप में दर्शाया गया है।
  2. ये वर्ण हटा दिए गए हैं और किसी अनुक्रमणिका में प्रकट नहीं होते हैं।

विचार करें कि हमारे पास इसके लिए संबंधित पूर्ण-पाठ अनुक्रमणिका के साथ निम्न तालिका है (जिसे छोड़ दिया गया है):

CREATE TABLE [dbo].[ActicleTable] 
(
  [Id] int identity(1,1) not null primary key,
  [ActicleBody] varchar(max) not null
);

बाद में विचार करें कि हम तालिका में पंक्तियाँ जोड़ते हैं:

INSERT INTO [ActicleTable] values ('digitally improvements folders')
INSERT INTO [ActicleTable] values ('digital"ly improve{ments} fold(ers)')

खोजने का प्रयास करें:

SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digitally')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improvements')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'folders')

और

SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digital')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improve')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'fold')

शर्तों का पहला समूह पहली पंक्ति से मेल खाएगा (दूसरा नहीं) जबकि दूसरा समूह केवल दूसरी पंक्ति से मेल खाएगा।

दुर्भाग्य से मुझे एमएसडीएन (या कुछ) का लिंक नहीं मिला जहां ऐसा व्यवहार स्पष्ट रूप से कहा गया हो। लेकिन मुझे एक आधिकारिक लेख मिला है जो बताता है कि पूर्ण-पाठ खोज क्वेरी के लिए उद्धरण चिह्नों को कैसे परिवर्तित किया जाए, जो [निहित रूप से] ऊपर वर्णित एल्गोरिथम के साथ संरेखित है।




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

  2. SQL सर्वर में लॉगिन की डिफ़ॉल्ट भाषा बदलें

  3. SQL सर्वर कर्सर प्रकार - SQL सर्वर में स्टेटिक कर्सर क्या हैं | SQL सर्वर ट्यूटोरियल / TSQL ट्यूटोरियल

  4. SQL सर्वर 2012 में query_post_execution_showplan विस्तारित ईवेंट का प्रभाव

  5. PHP में MSSQL में इन्सर्ट आईडी कैसे प्राप्त करें?