Le query sull'indice di testo completo di MS SQL Server 2000 che utilizzano l'utilizzo della tabella libera sono stemming

StackOverflow https://stackoverflow.com/questions/1200378

Domanda

Sto utilizzando l'indicizzazione di testo completo di MSSQL su una manciata di tabelle nel mio CMS e purtroppo sono bloccato con SQL Server 2000. Sto interrogando l'indice utilizzando join freetexttable e sto ottenendo risultati piuttosto buoni, ma abbiamo alcuni termini unici che sono probabilmente query di ricerca che non sembrano derivare. Ad esempio una query che utilizza il termine "smartbar" restituisce un paio di righe, ma una usa " smartbar " restituisce un set di risultati diverso, solo parzialmente sovrapposto.

Se capisco correttamente il concetto di derivazione, suppongo che la prima query conterrà tutte le righe nella seconda query, ma non lo fa.

Guardando i libri online di MSDN, questa pagina menzioni derivanti nei commenti sui parametri freetext_string, ma questa pagina no. Da ciò vorrei supporre che SQL Server 2000 non derivasse dalle parole nella query freetexttable; è un presupposto corretto? Esiste un modo per incoraggiare o abilitare l'attivazione di SQL Server 2000? Come ripiego userò probabilmente i file del thesaurus per query importanti per i nostri termini univoci, ma preferirei che SQL Server facesse la maggior parte del lavoro.

Come follow-up, se qualcuno ha collegamenti a buone risorse relative alle query full-text di SQL Server 2000, le apprezzerei molto. Le informazioni su MSDN sono utili, ma mi piacerebbe avere qualche informazione più approfondita e non sono stato in grado di trovare molto.

È stato utile?

Soluzione

Suppongo che quello che stai cercando sia un po 'diverso. Vuoi cercare tutte le forme della parola. Ha una certa relazione con la derivazione, ma nella ricerca full-text di MS SQL Server il risultato è leggermente diverso. Devi indicare esplicitamente al server di cercare tutte le forme della parola e non solo la parola stessa.

Ecco come fare:

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')

C'è un articolo in MSDN su questo argomento. Secondo altre risorse questa funzionalità era disponibile anche in SQL 2k (ma non ho un'istanza a portata di mano per la verifica).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top