|
|
Pubblicato suIeri alle 20:20
|
|
|
|

La ricerca a testo completo è una componente opzionale del motore di database SQL Server. Se non hai selezionato la ricerca full-text durante l'installazione di SQL Server, esegui di nuovo l'installer di SQL Server per aggiungerlo.
Panoramica
Un indice a testo completo include una o più colonne basate su caratteri in una tabella. Queste colonne possono contenere uno qualsiasi dei seguenti tipi di dati: char, varchar, nchar, nvarchar, text, ntext, image, xml, o varbinary(max), e FILESTREAM. Ogni indice di testo completo crea un indice per una o più colonne della tabella, e ogni colonna può utilizzare un linguaggio specifico.
Le query in testo completo operano su parole e frasi secondo le regole di lingue specifiche (come inglese o giapponese), effettuando così ricerche linguistiche basate sui dati testuali nell'indice integrale. Le query in testo completo possono includere parole e frasi semplici, oppure più forme di parole o frasi. Una query full-text restituisce tutti i documenti contenenti almeno una corrispondenza (nota anche come "hit"). Una corrispondenza si verifica quando il documento di destinazione contiene tutti i termini specificati nella query a testo completo e corrisponde a qualsiasi altro criterio di ricerca (come la distanza tra i termini corrispondenti).
Installazione del servizio di ricerca testuale completa di Linux Docker MSSQL 2022
I riferimenti sono i seguenti:
Controlla se la funzione di ricerca full-text di SQL SERVER è installata
Il comando è il seguente:
Ricerca a testo intero di SQL Server, indice a testo completo
Per prima cosa, crea una nuova libreria di test e inserisci i dati di test. Lo script è il seguente:
Crea un indice a testo completo
Viene utilizzata una tabella degli indici a testo completo per memorizzare l'indice del testo completo. Puoi crearlo direttamente usando i seguenti script:
Crea indici a testo completo per le tabelle del database
Quando si crea un indice a testo intero per una tabella di database, è necessario specificare il linguaggio corrispondente. Poiché la segmentazione delle parole varia tra le lingue, SQL Server utilizzerà la segmentazione delle parole della lingua corrispondente per elaborare i dati nella tabella. La ricerca full-text di SQL Server supporta circa 50 linguaggi diversi, permettendoti di visualizzare tutti i linguaggi supportati interrogando sys.fulltext_languages tabelle. Comando:
Come mostrato di seguito:
Successivamente, aggiungiamo un indice integrale per il cinese semplificato ai campi Titolo e Contenuto nella tabella delle notizie:
Ricerca in testo intero per predicati e funzioni
Le query a testo completo utilizzano predicati a testo completo (CONTIENEeTESTO LIBERO) e funzioni di testo completo (CONTAINSTABLEeFREETEXT)。 Supportano la complessa sintassi Transact-SQL, che supporta varie forme di termini di interrogazione.
La differenza tra CONTAINS e FREETEXT
CONTAINS: Il login del link ipertestuale è visibile.
Usa metodi precisi di abbinamento per trovare parole o frasi specifiche nel testo. Supporta condizioni complesse di interrogazione, come la ricerca di prossimità (ad esempio, le parole devono apparire vicine tra loro), la ricerca con prefissi e altro. Viene solitamente utilizzato in situazioni in cui è necessario un controllo più specifico sui risultati di ricerca.
FREETEXT: Il login del link ipertestuale è visibile.
Offre un'esperienza di ricerca più flessibile e basata sul linguaggio naturale. Non sono richiesti criteri di ricerca speciali; Analizza automaticamente il testo in input e cerca di trovare contenuti correlati. È più adatto agli utenti che vogliono effettuare semplici ricerche per parole chiave come Google, senza preoccuparsi di località o formati specifici.
I comandi sono i seguenti:
Come mostrato di seguito:
CONTAINSTABLE e FREETEXTTABLE
CONTAINSTABLE restituisce tabelle che soddisfano i criteri di query. Nelle istruzioni SQL, possiamo trattarle come tabelle regolari, e le query che usano CONTAINSTABLE restituiscono un valore RANK e una CHIAVE per ogni riga. RANK viene usato per indicare il grado di corrispondenza di correlazione, con valori compresi tra 0~1000, e KEY è l'ID della tabella principale. FREETEXTTABLE prima segmenta le parole e le frasi da interrogare, poi interroga per trovare il corrispondente. Il comando è il seguente:
Come mostrato di seguito:
Inoltre, puoi controllare i risultati della segmentazione inviando sys.dm_fts_parser:
Come mostrato di seguito:
questione
Domanda: CONTAINS non supporta di default le query fuzzy. Se inserisci CONTAINS(Column, 'apple'), corrisponderà alla parola radice (ad esempio, apples) ma non ananas. Soluzione: Se sono necessarie query fuzzy, devono essere posizionate prima e dopo i jollyAggiungi doppie virgolette e un asterisco:CONTIENE(Colonna, '"*mela*"')
Riferimento:
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile. |
Precedente:Sito web per lavoro da remoto, lavoro e freelance
|