Возникли проблемы с использованием 'И' в ПОЛНОТЕКСТНОМ ПОИСКЕ CONTAINSTABLE SQL SERVER

Некоторое время я использую ПОЛНЫЙ ТЕКСТ, но иногда мне не удается получить наиболее подходящие результаты.

Если у меня есть поле с чем-то вроде An Overview of Pain Medicine 5/12/2006 и пользователь вводит An Overview 5/12/2006

Итак, мы создаем такой поиск:

"An" AND "Overview" AND "5/12/2006" - 0 результатов (плохо)

"Overview" AND "5/12/2006" - 1 результат (хорошо)

СОДЕРЖАЩАЯСЯ часть моего запроса:

FROM         ce_Activity A
INNER JOIN
    CONTAINSTABLE(View_Activities,(Searchable), @Search) AS KeyTbl ON A.ActivityID = KeyTbl.[KEY]

«Доступное для поиска» - это поле, содержащее заголовок действия и дату начала (преобразованную в строку) в одном поле, поэтому все это удобно для поиска.

Почему это могло произойти?

[ОБНОВЛЕНИЕ]

Хорошо, я только что проверил теорию слова ШУМ. Я использовал "Pain" AND "Overview" AND "5/12/2006", и он отлично работает.

Но если добавить «из», ничего не получится. «Of» и «An» должны быть шумовыми словами.

Теперь вопрос в том, как мне сделать так, чтобы это просто ИГНОРИРОВАТЬ слова вместо того, чтобы удалять его из результата, если существует шумовое слово?

Какие-нибудь советы?


person Joshua    schedule 27.04.2010    source источник
comment
stackoverflow.com/questions/1042/ social.msdn.microsoft.com/Forums/en-US/   -  person Wills    schedule 27.04.2010
comment
technet.microsoft.com/en-us/library /ms187914(v=sql.110).aspx   -  person Jodrell    schedule 04.02.2015


Ответы (1)


Возможно, текущее средство разбиения по словам игнорирует "an" как шум.

person Remus Rusanu    schedule 27.04.2010
comment
Если бы это было так, он все равно загрузил бы запись, потому что ОБЗОР И 5/12/2006 РАБОТАЕТ. - person Joshua; 27.04.2010
comment
Хорошо, я только что проверил эту теорию. Я использовал Боль И Обзор И 5/12/2006, и он отлично работает. Но если добавить этого не удастся. «Of» и «An» должны быть шумовыми словами. Теперь вопрос в том, как мне сделать так, чтобы это просто ИГНОРИРОВАТЬ слова вместо того, чтобы удалять его из результата, если существует шумовое слово? Какие-нибудь советы? - person Joshua; 27.04.2010
comment
Шумовые слова контролируются с помощью игнорируемых слов и списков стоп-слов в SQL 2008, см. technet.microsoft. ru / en-us / library / ms142551.aspx - person Remus Rusanu; 28.04.2010
comment
У вас есть возможность включить параметр transform noise words, см. technet.microsoft.com /en-us/library/ms187914.aspx, что вызовет ошибку, если ваш СОДЕРЖИТ зависит от стоп-слов. ИЛИ вы можете проанализировать выражение в клиенте, сравнить со списком sys.fulltext_stopwords и изменить выражение, чтобы удалить известные стоп-слова. Боюсь, бесплатного обеда нет. - person Remus Rusanu; 28.04.2010