У меня есть пара миллионов записей в таблице базы данных Microsoft SQL Server. Поиск с [Column] LIKE '%test%'
слишком медленный. Поэтому я использую полнотекстовый поиск.
Мой запрос выглядит следующим образом после множества попыток с CONTAINS
и FREETEXT
...
SELECT [SearchText] FROM [Service].[CatalogArticleCache] AS t
INNER JOIN CONTAINSTABLE([Service].[CatalogArticleCache], [SearchText], '"*426*"') AS s1 ON t.ArticleId = s1.[KEY]
INNER JOIN CONTAINSTABLE([Service].[CatalogArticleCache], [SearchText], '"*211*"') AS s2 ON t.ArticleId = s2.[KEY]
INNER JOIN CONTAINSTABLE([Service].[CatalogArticleCache], [SearchText], '"*Geschweisst*"') AS s3 ON t.ArticleId = s3.[KEY]
INNER JOIN CONTAINSTABLE([Service].[CatalogArticleCache], [SearchText], '"*rohr*"') AS s4 ON t.ArticleId = s4.[KEY]
--INNER JOIN CONTAINSTABLE([Service].[CatalogArticleCache], [SearchText], '"*bogen*"') AS s5 ON t.ArticleId = s5.[KEY]
ORDER BY [SearchText]
Этот запрос возвращает пару записей, таких как ...
426 211357 .Geschweisste Rohrbogen 2d90
426 211682 .Geschweisste Leitungsrohre ungegl.
426 211990 .Geschweisste Rohrbogen D + 100
...
Как только я включу вторую последнюю строку моего SQL-запроса, я ожидаю, что результат в середине исчезнет. К сожалению, запрос не возвращает ни одной строки.
Почему это и как это исправить?