Sign in with Microsoft
New to Microsoft? Create an account.

الملخص

يوفر SQL Server 7.0 أو إصدار أحدث من البحث في النص الكامل (فتس) مجموعه ثريه من وظائف البحث. يمكنك استخدام جمله CONTAINS لاجراء مجموعه متنوعة من عمليات البحث ، مثل:

  • كلمه أو عبارة.

  • بادئه كلمه أو عبارة.

  • كلمه بالقرب من كلمه أخرى.

  • كلمه إينفليكتيونالي تم إنشاؤها من آخر. علي سبيل المثال ، تعتبر الكلمة "drive" إينفليكتيونالا لما يلي: محركات الاقراص والدروفي والقيادة والمستندات.

  • كلمه ذات وزن معين أكبر من كلمه أخرى.

يحتاج بناء الجملة CONTAINS إلى علامات اقتباس مزدوجة للبادئة ("كوك *") وللبحث عن الكلمات أو العبارات المتعددة ("تشوكولاتي شريحة" أو "أواتميل"). قد يكون السبب في ذلك وجود مشاكل في تصميم واجهه المستخدم ، لان المستخدمين غير معتادين علي الحاجة إلى اقتباس البحث بشكل صحيح وعرضه لاجراء الأخطاء عند تنفيذ ذلك. الدالة البسيطة مطلوبه التي يستطيع المطورون استخدامها لعرض الأسعار في سلسله الاستعلام بشكل صحيح قبل تمريرها إلى SQL Server.

مزيد من المعلومات

فيما يلي مراجعه لأساسيات بناء جمله استعلام النص الكامل مع الكلمات الاساسيه في عبارة where (للحصول علي بناء الجملة الأكثر اكتمالا ، راجع مصنفات SQL Server 7.0 عبر الإنترنت):

  • مصطلح بسيط:

    WHERE CONTAINS(QuantityPerUnit, 'bottles')
  • العبارة في مصطلح بسيط:

    WHERE CONTAINS(ProductName, ' "Sasquatch ale" OR "steeleye stout" ')
  • المصطلح البادئة:

    WHERE CONTAINS(ProductName, ' "choc*" ')
  • أو مع مصطلح البادئة:

    WHERE CONTAINS(Description, '"sea*" OR "bread*"')
  • الحد التقريبي:

    WHERE CONTAINS(ProductName, 'spread NEAR Boysenberry')
  • مصطلح الإنشاء:

    WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')
  • المدة المرجحة:

    WHERE CONTAINS(Description, 'ISABOUT (spread weight (.8), 1)

لاحظ ان الحد التقريبي والإنشاء والمصطلحات المرجحة لا يستخدم علامات اقتباس مزدوجة. لاحظ أيضا انه:

  • يمكن أحاطه الكلمات والعبارات الفردية بعلامات اقتباس مزدوجة (باستثناء الحد التقارب والإنشاء والمصطلحات المرجحة).

  • يجب ان تكون البحث عن مصطلحات البادئة محاطه بعلامات اقتباس مزدوجة.

  • يجب ان تحتوي عمليات البحث المتعددة المصطلحات والعبارات علي كل كلمه و/أو عبارة محاطه بعلامات اقتباس مزدوجة.

بفضل القواعد المبسطة السابقة ، يمكنك إنشاء محلل بسيط باستخدام التعبيرات العادية لوضع علامات اقتباس بشكل صحيح حول سلاسل البحث. الخوارزميه المستخدمة هي:

Replace all double quotes (clears the text and any improper quotations)   If the text string contains one of the key words "NEAR", "FORMSOF", or    "ISABOUT", the parsing is complete   Else      Surround any instances of 'and' or 'and not' with quotes      Surround any instances of 'or' or 'or not' with quotes      Surround the entire string with quotes

فيما يلي إصدار JavaScript:

function fxnParseIt() {// Note: sInputString code for demo purposes only, and should be//   replaced with user's code for getting in string value.var sInputString = 'asp and database';sText = sInputString;sText = sText.replace(/"/g,"");if (sText.search(/(formsof|near|isabout)/i) == -1) {sText = sText.replace(/ (and not|and) /gi,'" $1 "');sText = sText.replace(/ (or not|or) /gi,'" $1 "');sText = '"' + sText + '"';}sInputString = sText;}

فيما يلي إصدار VBScript:

Sub ParseIt()      '// Note: sInputString code for demo purposes only, and should be      '/replaced with user's code for getting in string value.      '// Note: this code could also be easily re-written as a function,      '/        and is written as a sub for demo purposes only.      Dim strIn, RegEx, sInput      sInputString = "asp and database"      strIn = sInput      Set RegEx = New RegExp      If Len(strIn) < 1 Then            MsgBox ("You must enter a search string")      Else            strIn = Replace(strIn, Chr(34), "")            If (InStr(strIn, "formsof") > 0) Or (InStr(strIn, "near") > 0) Or (InStr(strIn, "isabout") > 0) Then                  ParseMe.value = strIn            Else                  RegEx.IgnoreCase = True                  RegEx.Global = True                  RegEx.Pattern = "( and not | and )"                  strIn = RegEx.Replace(strIn, Chr(34) & "$1" & Chr(34))                  RegEx.Pattern = "( or not | or )"                  strIn = RegEx.Replace(strIn, Chr(34) & "$1" & Chr(34))                  strIn = Chr(34) & strIn & Chr(34)                  ParseMe.value = strIn            End If      End IfEnd Sub

هل تحتاج إلى مزيد من المساعدة؟

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Microsoft Insider

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟

نشكرك على ملاحظاتك!

×