【问题标题】:How do you do fulltext search with Entity Framework Core?如何使用 Entity Framework Core 进行全文搜索?
【发布时间】:2019-03-11 09:23:43
【问题描述】:

我有以下疑问:

SELECT Animals.name 
FROM Animals 
WHERE CONTAINS(*, 'feline AND black');

我无法将其转换为 Entity Framework Core 查询。我有一个带有几个索引的目录的 SQL Server。

我希望能够使用FREETEXTCONTAINS 对表进行全文查询。我在 Entity Framework Core 中找不到使用CONTAINS 进行全文搜索的方法。

【问题讨论】:

  • 据我所知,EF Core 原生支持 SQL Server 中的全文搜索。您可能需要将这些查询打包到存储过程中,您可以从 EF Core 调用该过程
  • 我确实调查过。不幸的是,它们没有可用于使用逻辑运算符的方法“CONTAINS”。到目前为止,EF Core 似乎不支持全文搜索。
  • 我认为解决这个问题的唯一方法就是使用实体框架执行原始 sql 查询。 docs.microsoft.com/en-us/ef/core/querying/raw-sql

标签: c# sql-server asp.net-core entity-framework-core


【解决方案1】:

这在 EF Core 2.1 中是可能的。您必须为 Microsoft.EntityFrameworkCore 添加 using 语句,但之后您可以使用它,如下所示

var results = db.Widgets
    .Where(x => EF.Functions.FreeText(x.ColumnName, "search text"));

【讨论】:

  • 如何在所有列上做?
猜你喜欢
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
  • 2019-05-31
  • 2020-09-10
  • 2018-07-25
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多