У меня возникли проблемы с ранжированием, используемым полнотекстовым поиском в SQL Server.
Предположим, пользователь ищет два слова «foo bar». Мы предполагаем, что пользователь намеревается выполнить поиск по ИЛИ, поэтому мы передаем «foo OR bar» в наш вызов CONTAINSTABLE. Мы обнаружили, что строка, которая содержит «foo» 10 раз, но не содержит «bar», будет иметь гораздо более высокий ранг, чем строка, в которой есть и «foo», и «bar». Мы хотели бы, чтобы строка, в которой есть оба термина, была предпочтительнее строки, в которой несколько раз встречается только один термин. Любые советы о том, как этого добиться?
Я нашел документацию, связанную с модификатором RANKMETHOD, но, похоже, она предназначена только для поиска SQL Enterprise и недоступна при обычной установке SQL Server 2005. Мы также могли бы переключиться на Lucene.Net, но я надеюсь убедиться, что у него лучший рейтинг. Мы также можем выполнять многократный поиск и объединять результаты, но это кажется нежелательным, поскольку количество искомых слов увеличивается.