5

Mam bazę danych SQL Server 2008 z indeksem pełnotekstowym ustawionym na jedną kolumnę tabeli używaną do wyszukiwania.SQL Server Pełny tekst nie bierze pod uwagę bezpośrednich zer na zero

Podczas próby wykonania zapytania w tabeli przy użyciu klauzuli CONTAINS z następującymi kryteriami: "003", ignoruje ona wiodące zera i zwraca wszystkie wiersze odpowiadające "3".

Staramy się brać pod uwagę wiodące zera do wyszukiwania, wszelkie pomysły?

(Lista zatrzymań dla pełnego tekstu jest pusta).

UPDATE: Zapytanie

SELECT * FROM Table 
WHERE CONTAINS(SearchIndex, '"003*"') 
+0

Pokaż nam swoje zapytanie. –

+0

Jaki jest wynik zapytania? Mówisz, że zwraca wszystkie wiersze, które pasują do "3", ale czy zwraca także te z zerami wiodącymi? Czy zwykłe WYBIERZ * Z tabeli, GDZIE działa SearhIndex LIKE "003%"? – TheBoyan

+0

Rzeczywiście zwraca te z zerami wiodącymi i bez nich. – luisporras

Odpowiedz

0

miałem podobny problem jak to jakiś czas temu.

Być może jednym z podejść może być wybranie kilku wyników za pomocą wyszukiwania pełnotekstowego, a następnie WYBIERZ konkretny z tych wyników. Ale może może być lepsze rozwiązanie tego problemu.

Próbowałem tego podejścia i faktycznie działało. Działa również o wiele szybciej niż po prostu WYBIERZ wartość.

0

Wpadłem na ten sam problem i stwierdziłem, że problem dotyczy sposobu, w jaki parser pełnotekstowy obsługuje wiodące liczby zerowe. This post pomógł mi lepiej zrozumieć. Problem można zobaczyć samodzielnie, jeśli używasz sys.dm_fts_parser do sprawdzenia, w jaki sposób analizator pełnotekstowy przeanalizowałby liczbę z wiodącymi zerami.

Naprawdę chciałbym, aby Microsoft zezwolił na wyłączenie tej "funkcji". Praca omówiona w innych odpowiedziach działa dobrze, jednak nie pozwala łatwo dopasować na podstawie wielu kolumn, takich jak różne funkcje wyszukiwania pełnotekstowego.