Полнотекстовый поиск не работает, если включено стоп-слово, даже если стоп-лист пуст

Я хотел бы иметь возможность искать каждое слово, поэтому я очистил список стоп-слов. Затем я перестроил индекс. Но, к сожалению, если я нахожу в выражении поиска с остаточным словом, он все равно не возвращает строку. Если я оставлю только стоп-слово, я получаю результаты. Например, «двойное пребывание на месте» – нет результата, «место пребывания с двойным износом» – я получаю результаты, которые фактически содержат «в».

Кто-нибудь знает, почему это может быть? Я использую SQL Server 2012 Express.

Большое спасибо!

    Тем временем мне удалось решить проблему. Проблема заключалась в том, что у меня был свой собственный список стопов, который был действительно пустым, но мой полнотекстовый каталог был связан не с моим собственным стоп-листом, а с системным. Вот несколько полезных запросов для решения проблем с повторением и полным текстовым поиском:

    Query stopwords (не возвращает системные!):

    select * from sys.fulltext_stopwords 

    Списки остановки запроса (не возвращает системный список!):

     select * from sys.fulltext_stoplists 

    Проверьте, какие слова включены в каталог:

     SELECT * FROM sys.dm_fts_index_keywords(DB_ID('dbname'), OBJECT_ID('tablename')) 

    Проверьте связь:

     select fulltext_catalog_id,stoplist_id, * from sys.fulltext_indexes; 

    Выключить стоп-лист:

     ALTER FULLTEXT INDEX ON CremeSearchFT SET STOPLIST = OFF 

    Надеюсь, это поможет кому-то. 🙂

    Основываясь на моих исследованиях, это связано с опцией «Полный список индексов», одним из основных свойств полнотекстового индекса. Если вы установите этот параметр в «Система», все ключевые слова, включенные в «Список системных остановок», не будут доступны для ваших предложений CONTAINS() и, к сожалению, для таких случаев не будет наборов результатов. Решение;

    Чтобы установить этот параметр в положение «ВЫКЛ», которое будет обходить проверку списка остановок в вашем наборе языков. Например, вы на английском, сены на турецком языке. Они отмечены как стоп-слова и будут иметь смысл, если SQL Server Engine будет исключен в таких поисках, если вы не установите параметр «система». Поэтому не используйте опцию «Система». Для этого запустите следующий скрипт на db, который существует в вашей таблице:

     ALTER FULLTEXT INDEX ON table_name SET STOPLIST = OFF 

    Чтобы создать свой собственный список остановок. В этом случае вы можете определить свои специальные слова остановки и создать конкретные стоп-листы. Таким образом, только эти будут рассматриваться, поскольку они не будут иметь никакого смысла для SQL Server Engine. Создав его, вы можете начать использовать его, выполнив следующие сценарии:

     CREATE FULLTEXT STOPLIST myStoplist GO ALTER FULLTEXT STOPLIST [myStoplist] ADD 'you' LANGUAGE 'English' GO ALTER FULLTEXT INDEX ON table_name SET STOPLIST = [myStoplist] GO 

    Надеюсь, это поможет 🙂 Удачи …

    В случае, если кто-то заинтересован, я сформулировал запрос проверки ассоциации в ответе Аполки, чтобы дать более разборчивые результаты:

     --Check the association: SELECT ft_c.name AS [Catalog], s.name AS [Schema], o.name AS [Table], [StopList] = CASE WHEN ft_i.stoplist_id IS NULL THEN 'None' ELSE ISNULL(ft_sl.NAME, 'System') END FROM sys.fulltext_indexes AS ft_i LEFT OUTER JOIN sys.fulltext_stoplists AS ft_sl ON ft_sl.stoplist_id = ft_i.stoplist_id INNER JOIN sys.fulltext_catalogs AS ft_c ON ft_c.fulltext_catalog_id = ft_i.fulltext_catalog_id INNER JOIN sys.objects AS o ON o.object_id = ft_i.object_id INNER JOIN sys.schemas AS s ON s.schema_id = o.schema_id 

    Так глупо, что этот материал отсутствует в SSMS!

    Interesting Posts

    T-SQL обновляет увеличивающееся значение

    Autogenerate GUID, который не является первичным ключом в Entity Framework

    NOCHECK не отключает ссылки на внешние ключи

    Как я могу сделать эту расчетную меру корректной в SSAS?

    «Предупреждения: столбцы без статистики» по пространственному индексу

    Как написать запрос для извлечения отдельных изменений из моментальных снимков данных?

    COUNT (DISTINCT column_name) Несоответствие или COUNT (имя_столбца) в SQL Server 2008?

    Совокупный итог и создание данных в течение нескольких недель, чтобы не было данных

    Префикс всех столбцов в выражении T-SQL

    Синхронизация двух баз данных с использованием служб Windows

    Какие типы данных C # не являются сериализуемыми WCF?

    В Trigger возникает ошибка как ошибка преобразования типа данных varchar в числовой

    Перенос из SQLCE 4 в SQL Server 2008

    Комплекс LIKE Query чрезвычайно медленный снова NVARCHAR (450), по сравнению с VARCHAR (450)

    Как объявить две переменные таблицы с одинаковыми структурами?

    Давайте будем гением компьютера.