none
Как правильно организовать поиск по ТЭГАМ RRS feed

  • Вопрос

  • есть база SQL AZure

    допустим есть таблица

    [id],

    [names] (nvarchar), // здесь Наименование книги

    хочу реализовать поиск не по названию а по содержанию книги

    добавляю поля по ключевым словам

    [tag1],

    [tag2],

    [tag3],

    [tag4],

    [tag5] и т.д.

    допустим ключевых слов 10

    Нужен запрос LINQ EF

    допустим я ищу в столбце tag1 подходящее имя, - один запрос

    а tag1...10. Это что получается мне 10 разных запросов писать на поиск в 10 полях?

    Или поиск по ключевым словам как то по-другому решается?

    20 ноября 2012 г. 20:28

Ответы

  • на чистом t-sql это можно решить через один запрос в виде

    where ( @tag1 is null or [tag1] = @tag1 )  
     and  ( @tag2 is null or [tag2] = @tag2 )

    и т.д.


    http://www.t-sql.ru

    • Помечено в качестве ответа developers_s 21 ноября 2012 г. 5:49
    21 ноября 2012 г. 3:44
    Модератор
  • Примерно так будет:

    IEnumerable<String> result = MyDbContext.MyTable.Where(t=> t.Tag1.Contains("keyword") | ...| t.Tag10.Contains("keyword)").ToList();

    • Помечено в качестве ответа developers_s 21 ноября 2012 г. 5:49
    21 ноября 2012 г. 5:30
    Модератор

Все ответы

  • на чистом t-sql это можно решить через один запрос в виде

    where ( @tag1 is null or [tag1] = @tag1 )  
     and  ( @tag2 is null or [tag2] = @tag2 )

    и т.д.


    http://www.t-sql.ru

    • Помечено в качестве ответа developers_s 21 ноября 2012 г. 5:49
    21 ноября 2012 г. 3:44
    Модератор
  • Примерно так будет:

    IEnumerable<String> result = MyDbContext.MyTable.Where(t=> t.Tag1.Contains("keyword") | ...| t.Tag10.Contains("keyword)").ToList();

    • Помечено в качестве ответа developers_s 21 ноября 2012 г. 5:49
    21 ноября 2012 г. 5:30
    Модератор