C # Несколько ключевых слов Fulltext Freetext Параметризованный запрос - PullRequest
2 голосов
/ 11 января 2011

У меня есть база данных SQL 2008 с настройкой полнотекстового каталога для одной из моих таблиц, и цель состоит в том, чтобы иметь возможность выполнять поиск в свободном тексте по этой таблице с веб-сайта asp.net c #, где значение свободного текста может иметь несколько ключевых слов. Используя SQL Management Studio, я могу вручную запускать такие запросы, как:

SELECT * FROM KnowledgeFAQ_Answers WHERE FREETEXT ((Title, [Text]), 'application deadlines') Order By Rank() Over (Order By Title)

И все работает просто отлично. После того, как у меня был запрос, я создал свой код доступа к данным на моем веб-сайте, и по большей части он работает нормально, но в некоторых ситуациях у меня есть расхождения. Кажется, что некоторые более мелкие слова, когда они присутствуют в строке поиска, просто возвращают пустой носитель данных; однако тестирование одной и той же фразы непосредственно в SQL Management Studio возвращает результаты правильно. Так, например, «крайний срок приема» сработает и вернет читателю результаты, но «конечный срок приема» неожиданно ничего не даст, несмотря на то, что запрос выполняется вручную. Определенные слова, без какой-либо конкретной причины, которую я вижу, вызывают 0 результатов, но также не приводят к ошибкам SQL ... просто возвращает пустой носитель данных. Кажется, что объект sqlcommand каким-то образом анализирует их так, чтобы не нарушать синтаксис, но не вырабатывать совпадений. У кого-нибудь есть рабочий пример нескольких ключевых слов в запросе свободного текста через объект sqlcommand и / или рассуждения о том, почему это не сработает? ... с полной потерей здесь.

...