2013-09-07 2 views
0

Привет, у меня есть таблица, которая содержит записи ~ 180K, и мне нужно искать строку в этой таблице.Поиск строки с sql содержит и выражение «содержит» с ASP.Net

Например, если пользователь поиска что-то вроде этого «Париж ресторанов» мне нужно создать выражение, как этот

SELECT * FROM ListOfStrings 
WHERE CONTAINS(Title, ' "Paris Restaurants" OR (Paris OR Restaurants) ') 

Но может быть один или несколько терминов. Поэтому мне нужно создать динамическое выражение Contains.

Я googled, но я не мог найти динамическое создание выражения. Любые идеи будут оценены.

+0

не следует использовать 'FREETEXT' в этом случае? – rene

+0

Я использовал его, но он возвращает слишком много неуместных результатов. –

+0

Вам нужно создать выражение 'CONTAINS' на sql или на стороне клиента? –

ответ

0

Вы можете создавать с помощью функций, которые принимают ваш поисковый запрос, а затем разделяются и объединяются, чтобы дать нужный аргумент Contains.

public string ContainsBuilder(string searchterm) 
{ 
    var sb = new StringBuilder(); 
    sb.Append('"'); 
    sb.Append(searchterm); 
    sb.Append('"');   
    sb.Append(" OR ("); 
    sb.Append(String.Join(" OR ",searchterm.Split(' '))); 
    sb.Append(")"); 
    return sb.ToString(); 
} 

, если вы вызываете этот метод с paris restaurants возвращает "paris restaurants" OR (paris OR restaurants)

+0

Я не думал, что все будет так просто. Но стоит попробовать. –

Смежные вопросы