Полнотекстовый поиск не возвращает строку, содержащую искомое ключевое слово - PullRequest
0 голосов
/ 21 октября 2018

У меня проблема с полнотекстовым поиском в базе данных клиента.Проблема возникает только в базе данных клиента, и я не могу воспроизвести ее локально, поэтому я думаю, что она должна быть связана с существующими данными в базе данных.

В хранимой процедуре я проверяю ключевое слово для различных символов, а затем манипулирую им и присваиваю результат @ SearchString .Если в моем ключевом слове нет пробелов в кавычках, я запускаю следующий запрос к таблице с полнотекстовым индексом по всем столбцам:

SELECT [KEY] FROM CONTAINSTABLE([TableName], *, @SearchString, 1000)

Ключевое слово, которое я передаю хранимой процедуре.равен I-MU-MUMB-ISC-2909 , и после манипуляции я назначаю "I-MU-MUMB-ISC-2909 *" на @ SearchString .Даже если точная строка существует в одном из столбцов, запрос не возвращает никаких результатов.Я использовал STOPLIST = OFF при создании этого полнотекстового индекса, поэтому моя проблема не должна касаться стоп-слов.Кроме того, если я ищу I-MU-MUMB-ISC-2908 , (строка заканчивается на 8 вместо 9), в результате появляется другая строка, в которой эта строка находится в том же столбце.

Я даже изменил выбор и использовал конкретное имя столбца, содержащее ключевое слово, но опять-таки результата не было.

Если это поможет, я заметил, что эти две строки вместе с несколькими сотнями строк имеют I-MU-MUMB в одном из столбцов.

У меня нет прямого доступа к серверу, поэтому я был бы признателен, если бы вы дали мне несколько советов, которые я смогу протестировать позже, когдаЯ получаю доступ к серверу.

Спасибо!

1 Ответ

0 голосов
/ 23 октября 2018

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

фатальная ошибка произошла во время полнотекстового заполнения и привела к отмене заполнения

Затем я проверил журнал ошибок базы данных и понял, что в базе данных не хватило места несколько дней назад, и это привело к остановке полнотекстовой индексации.Решение уже было в файле журнала, я возобновил заполнение с помощью следующей команды, и теперь все работает нормально:

ALTER FULLTEXT INDEX ON table_name RESUME POPULATION

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...