Улучшение поиска строки - PullRequest
       10

Улучшение поиска строки

0 голосов
/ 17 декабря 2011

У меня есть таблица с именем «Articles», которая содержит поле Article_body, которое может содержать более 1000 символов для каждой записи. И у меня есть веб-страница поиска, чтобы искать эти статьи, вставляя любую строку и извлекая все статьи, которые содержат эту строку, в их поле Article_body. В настоящее время я делаю это с помощью метода .contain следующим образом: -

**public IQueryable<Question> searcharticles(string q)
    {
        return from a in entities1.articles
            where (a.article_body.Contains(q)  
 select u;}**

В настоящее время поиск работает нормально, но я боюсь, что когда у меня будут тысячи статей, это может работать неэффективно, поэтому у меня есть два следующих вопроса: -

  1. есть ли лучший способ сделать поиск?.
  2. если я добавлю индекс в поле article_body, это ускорит поиск (я так не думаю !!)? Заранее благодарю за любую помощь. BR

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Предполагая, что у вас есть SQL Server

Есть несколько способов повысить производительность.

  1. Создайте правильный некластеризованный индекс с охватывающим столбцом.

    (Подробнее об индексе обложки)

  2. Полнотекстовый поиск SQL Server, но для этого требуется корпоративная лицензия, если вы хотите разместить его в сети
  3. Попробуйте Lucene Indexing
2 голосов
/ 17 декабря 2011

Вы просматривали Полнотекстовый поиск (при условии, что ваша база данных - SQL-сервер)?

...