|
|
JulkaistuEilen klo 20:20
|
|
|
|

Kokotekstihaku on SQL Server -tietokantamoottorin valinnainen osa. Jos et valinnut kokotekstihakua asentaessasi SQL Serveriä, käynnistä SQL Server -asennusohjelma uudelleen lisätäksesi sen.
Yleiskatsaus
Kokotekstiindeksi sisältää yhden tai useamman merkkipohjaisen sarakkeen taulukossa. Nämä sarakkeet voivat sisältää minkä tahansa seuraavista tietotyypeistä: char, varchar, nchar, nvarchar, text, ntext, image, xml tai varbinary(max) sekä FILESTREAM. Jokainen kokotekstihakemisto luo indeksin yhdelle tai useammalle sarakkeelle taulukossa, ja jokainen sarake voi käyttää tiettyä kieltä.
Kokotekstikyselyt toimivat sanoilla ja ilmauksilla tiettyjen kielten (kuten englannin tai japanin) sääntöjen mukaisesti, suorittaen näin kielihakuja kokotekstiindeksin tekstitietojen perusteella. Kokotekstikyselyt voivat sisältää yksinkertaisia sanoja ja ilmauksia tai useita sanamuotoja tai fraaseja. Kokotekstikysely palauttaa kaikki asiakirjat, joissa on vähintään yksi osuma (tunnetaan myös nimellä "hit"). Vastaavuus tapahtuu, kun kohdedokumentti sisältää kaikki täystekstikyselyssä määritellyt termit ja vastaa muita hakukriteerejä (kuten vastaavuustermien välisen etäisyyden).
Linux Docker MSSQL 2022 täystekstin hakupalvelun asennus
Lähteet ovat seuraavat:
Tarkista, onko SQL SERVERin kokotekstihakutoiminto asennettu
Käsky on seuraava:
SQL Server Kokotekstihaku, Koko tekstin hakemisto
Luo ensin uusi testikirjasto ja lisää testidata. Skripti on seuraava:
Luo kokotekstinen sisällysluettelo
Koko tekstin sisällysluetteloa käytetään koko tekstin indeksin tallentamiseen. Voit luoda sen suoraan seuraavilla skripteillä:
Luo kokotekstiindeksejä tietokantatauluille
Kun luot täystekstin indeksiä tietokantataululle, sinun täytyy määrittää vastaava kieli. Koska sanasegmentointi vaihtelee kielten välillä, SQL Server käyttää vastaavan kielen sanasegmentointia taulun datan käsittelyyn. SQL Serverin täystekstihaku tukee noin 50 eri kieltä, jolloin voit tarkastella kaikkia tuettuja kieliä kyselyillä sys.fulltext_languages tauluista. Komento:
Kuten alla on esitetty:
Seuraavaksi lisäämme Uutistaulukon otsikko- ja sisältökenttiin koko tekstihakemiston kiinalaisesta yksinkertaistetusta kielestä:
Koko tekstin haku predikaattien ja funktioiden osalta
Kokotekstikyselyt käyttävät kokotekstipredikaatteja (SISÄLTÄÄjaVAPAATEKSTI) ja kokotekstifunktiot (CONTAINSTABLEjaFREETEXTTABLE)。 Ne tukevat monimutkaista Transact-SQL-syntaksia, joka tukee erilaisia kyselytermejä.
Ero CONTAINSin ja FREETEXTin välillä
CONTAINS: Hyperlinkin kirjautuminen on näkyvissä.
Käytä tarkkoja sovitusmenetelmiä löytääksesi tiettyjä sanoja tai ilmauksia tekstistä. Tukee monimutkaisia kyselyehtoja, kuten läheisyyshakua (esimerkiksi sanojen täytyy esiintyä lähellä toisiaan), etuliitehakua ja muuta. Sitä käytetään yleensä tilanteissa, joissa tarvitaan tarkempaa kontrollia hakutuloksiin.
FREETEXT: Hyperlinkin kirjautuminen on näkyvissä.
Tarjoaa joustavamman ja luonnollisen kielen hakukokemuksen. Erityisiä hakukriteerejä ei tarvita; Se jäsentää automaattisesti syötetekstin ja yrittää löytää siihen liittyvää sisältöä. Se sopii paremmin käyttäjille, jotka haluavat tehdä yksinkertaisia avainsanahakuja kuten Google, ilman huolta tietyistä paikoista tai muodoista.
Käskyt ovat seuraavat:
Kuten alla on esitetty:
CONTAINSTABLE ja FREETEXTTABLE
CONTAINSTABLE palauttaa taulukoita, jotka täyttävät kyselykriteerit. SQL-lauseissa voimme käsitellä niitä tavallisina tauluina, ja CONTAINSTABLE-kyselyt palauttavat RANK-arvon ja avaimen jokaiselle riville. RANK-arvoa käytetään korrelaatioyhteensopivuuden asteen osoittamiseen, arvojen ollessa välillä 0~1000, ja KEY on päätaulukon ID. FREETEXTTABLE segmentoi ensin kysyttävät sanat ja lauseet, sitten kyselyt vastaavuudesta. Käsky on seuraava:
Kuten alla on esitetty:
Lisäksi voit tarkistaa segmentointitulokset kysymällä sys.dm_fts_parser:
Kuten alla on esitetty:
ongelma
Kysymys: CONTAINS ei tue oletuksena epätarkkoja kyselyjä. Jos syötät CONTAINS(Column, 'apple'), se vastaa juurisanaa (esim. apples), mutta ei ananassanaa. Ratkaisu: Jos epämääräisiä kyselyjä tarvitaan, ne on sijoitettava ennen ja jälkeen jokerikorttienLisää kaksoislainausmerkit ja tähti:CONTAINS(Sarakke, '"*apple*"')
Viittaus:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä. |
Edellinen:Etätyö-, työ- ja freelance-työalustan verkkosivusto
|