Я пытаюсь осуществить поиск-механизм с «СОДЕРЖИТ()» на SQL Server 2014.SQL содержит точную фразу
я прочитал здесь https://technet.microsoft.com/en-us/library/ms142538%28v=sql.105%29.aspx и в книге «Pro полнотекстового поиска в SQL Server 2008 ", что мне нужно использовать двойные кавычки для поиска точной фразы.
Но e.q. если я использую это CONTAINS(*, '"test"')
Я получаю результаты, содержащие слова типа "численный". Если я попробую CONTAINS(*, '" test "')
, то будет то же самое. Я заметил, что есть меньше результатов, как если бы я искал CONTAINS(*, '*test*')
для префикса, sufix search, поэтому определенная разница между поисками.
Я не ожидал «численного» в первом утверждении. Есть ли объяснение этого поведения?
Для начала, интервал по указанной вами ссылке отличается от вашего кода примера, вы пробовали: 'CONTAINS (*, '" test "')' – Tanner
Разве это не означает, что Contains() делать? «Тест», несомненно, содержится в «численном». Я бы предположил, что точное означает, что он фиксируется для определенного термина, а не термин + перегибы термина, например FREETEXT(). – scheien
'CONTAINS (*, '" test "')' результат тот же, что и первые два. Я бы использовал LIKE для точного поиска, но это длится долго. Единственное решение на данный момент - это два поиска с 'CONTAINS (*, '" test "')', а затем снова фильтровать результаты в коде ... Не очень красиво ... –