58 messaggi dal 06 settembre 2002
Ciao,

ho scoperto che facendo della ricerche con 1-2-3 caratteri la mia query sull'indice fulltext non ritorna risultati, cosa può essere?

Questa è la mia query:

SELECT * FROM tblLocation INNER JOIN
FREETEXTTABLE(tblLocation, *, 'out') AS KEY_TBL ON tblLocation.locID = KEY_TBL.[KEY] INNER JOIN .....


Nel DB ho questi record che dovrebbero essere estratti:

'time out'
'in & out'

Se scrivo 'time' mi estrae il primo, ho provato a scrivere anche 'in & out' e nulla :(

Chi sa capire dove sta il problema?


Grazie
Gianluca
2.198 messaggi dal 30 novembre 2001
se non ricordo male il carattere & viene ignorato, e devi controllare anche che out non sia tra le parole ignorate dal motore fulltext.
678 messaggi dal 12 maggio 2001
www.idioteca.it
e a memoria, dovrebbero essere ignorate tutte le parole con meno di N caratteri (non ricordo quanti e non ricordo se questa cosa la si possa forzare in qualche modo)
ciao

P.s.
prova a passare il tutto tra doppi apici (") così dovrebbe prendere il testo come unica parola, che nel caso specifico ha anche un senso. :-)
Modificato da giangi_77 il 14 ottobre 2010 09.48 -
58 messaggi dal 06 settembre 2002
Niente da fare, nemmeno così funziona:

SELECT TOP (100) *
FROM tblLocation INNER JOIN
FREETEXTTABLE(tblLocation, *, '"in & out"') AS KEY_TBL ON tblLocation.locID = KEY_TBL.[KEY] ....

o

SELECT TOP (100) *
FROM tblLocation INNER JOIN
FREETEXTTABLE(tblLocation, *, '"out"') AS KEY_TBL ON tblLocation.locID = KEY_TBL.[KEY] ....


C'è modo di far prendere anche meno di 4 caratteri???


Grazie
Gianluca
2.198 messaggi dal 30 novembre 2001
funziona anche con meno di 4 caratteri, io ho un indice fulltext su una tabella e se effettuo query con 3 caratteri funziona, ripeto controlla che la parola out non sia tra quelle ignorate, il motore fulltext ha un elenco di parole che vengono ignorate e quindi non vengono indicizzate.
58 messaggi dal 06 settembre 2002
Grazie alle vostre risposte ho risolto, avevate ragione sono parole riservate, le così dette in sql server 2008 stopwords.

Ho cambiato la stoplist impostandone una personalizzata in questo modo:
Creato una stoplist personalizzata
CREATE FULLTEXT STOPLIST AHourSL;
Modificato la stoplist del mio fultext
ALTER FULLTEXT INDEX ON tblLocation SET STOPLIST AHourSL


Gianluca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.