#postgresql #npgsql #ef-core-5.0
Вопрос:
Мы используем объединение ts_vectors для поддержки нескольких языков в некоторых столбцах. В старых версиях это было так:
public class AddTsVectorIndexes : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(
@"CREATE INDEX ""Name_TsVector"" ON ""SomeTable"" USING GIN
(((to_tsvector('russian', ""Name"") || to_tsvector('english', ""Name"")) || to_tsvector('simple', ""Name"")));");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(@"DROP INDEX ""Name_TsVector"";");
}
}
Есть ли какой-либо способ объединить ts_vectors с новым синтаксисом сахара индекса выражений, добавленным в Npgsql 5(документы)?
Или, может быть, есть способ создать многоязычный словарь ts_vector для синтаксических анализаторов и просто использовать его в качестве конфигурации для создания ts_vector и ts_query?
Ответ №1:
Сахар для создания индексов полнотекстового поиска-это просто сахар для общего использования. Если вам нужно что-то еще (как описано выше), вы можете очень легко использовать необработанный SQL в своих миграциях вместо этого и указать любое выражение, которое вы хотите.