Как сделать полнотекстовый поиск с Linq2db? - PullRequest
0 голосов
/ 28 января 2019

У меня есть .Net Core 2.2 проект с Linq2db провайдером для MySql.

Как мне выполнить поиск, используя полнотекстовый индекс с linq2db?

Можно ли сделать для любогоДвигатель БД, а не конкретный код БД?

1 Ответ

0 голосов
/ 29 января 2019

Пока база данных поддерживает текстовое поле, которое может поддерживать большие объемы текста, вы просто добавляете индекс к этому полю, выполняя что-то вроде:

class MyContext: DbContext {public DbSet Blogs {get;задавать;}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>()
        .HasIndex(b => b.Url);
}

}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

В ядре EF, если вы используете такие вещи, как StartsWith, Contains или EF.Functions.Like в функциях Where, тогда я считаю, что это переводится в Likeв SQL.Так что в ядре EF это будет использовать ваш полнотекстовый поиск полей в таких базах данных.

Я думаю, что это должно быть то же самое для linq2db ...

Так что да, это будет общим для любогобаза данных.

Однако, как я однажды узнал с помощью SQLite, я не смог добавить индекс к такому текстовому полю с большим количеством данных, поскольку база данных не поддерживает его ... (из памяти он был ограниченпримерно 1000 байт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...