Pierakstīties, izmantojot Microsoft
Pierakstieties vai izveidojiet kontu.
Sveicināti!
Atlasiet citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Kopsavilkums

SQL Server 7,0 vai jaunākas versijas pilna teksta meklēšana (FTS) nodrošina bagātīgu meklēšanas funkcionalitātes kopu. Varat izmantot klauzulu satur, lai veiktu dažādus meklēšanas rezultātus, piemēram:

  • Vārds vai frāze.

  • Vārdu vai frāžu prefikss.

  • Vārds, kas atrodas tuvu citam vārdam.

  • Vārds, kas tiek ģenerēts no citas apzīmējami. Piemēram, vārds "disks" ir formveidošanasais kāts: diski, brauca, braukšana un piedziņa.

  • Vārds, kura lielums pārsniedz citus vārdus.

SATUR sintaksei ir nepieciešamas dubultas pēdiņas ("Choc *"), kā arī vairāku vārdu vai frāžu meklēšana ("šokolādes mikroshēma" vai "auzu"). Tas var būt problemātiski saistībā ar UI noformējumu, jo lietotāji nav pieraduši, ka viņiem ir pareizi jācitē viņu meklēšana un ir tieksme kļūdīties. Vienkārša funkcija ir nepieciešama, lai izstrādātāji var izmantot, lai pareizi citētu vaicājuma virkni, pirms tas tiek nodots SQL Server.

Papildinformācija

Tālāk sniegts pārskats par pilna teksta vaicājumu sintakses izmantošanu ar atslēgvārdu WHERE (pilnīgāku sintaksi skatiet SQL Server 7,0 grāmatās tiešsaistē):

  • Vienkārši termini:

    WHERE CONTAINS(QuantityPerUnit, 'bottles')
  • Frāze vienkāršā termiņā:

    WHERE CONTAINS(ProductName, ' "Sasquatch ale" OR "steeleye stout" ')
  • Prefiksa termiņš:

    WHERE CONTAINS(ProductName, ' "choc*" ')
  • VAI ar prefiksa terminu:

    WHERE CONTAINS(Description, '"sea*" OR "bread*"')
  • Tuvuma termiņš:

    WHERE CONTAINS(ProductName, 'spread NEAR Boysenberry')
  • Ģenerēšanas termiņš:

    WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')
  • Svērtais termiņš:

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

Ievērojiet, ka tuvuma, paaudzes un svērtajiem terminiem neizmantojiet pēdiņas. Ņemiet arī vērā, ka:

  • Atsevišķus vārdus un frāzes var ietvert dubultpēdiņās (izņemot tās tuvumā, ģenerēšanā un svērtos terminus).

  • Prefiksa terminu meklēšanai jābūt ietvertai dubultpēdiņās.

  • Vairāku terminu un frāžu meklēšanai ir jābūt katram vārdam un/vai frāzei, kas ir jāietver pēdiņās.

Ņemot vērā iepriekš vienkāršotos noteikumus, varat izveidot vienkāršu parsētāju, izmantojot regulāras izteiksmes, lai pareizi ievietotu pēdiņas ap meklēšanas virknēm. Izmantojamais algoritms ir:

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

Šī ir JavaScript versija:

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;}

Šī ir VBScript versija:

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

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×