如何使用 Entity Framework Core 进行全文搜索添加两个字段?

发布于 2025-01-16 10:17:15 字数 813 浏览 1 评论 0原文

如果只搜索一个字段,就可以成功。 但不是两个。

var results = db.tables
    .Where(x => EF.Functions.Match(x.Title, "search text",MySqlMatchSearchMode.Boolean));

我想得到sql语法结果。

select * from articles 
where match(`title`) against('葡萄牙') > 0;

下面是我想要达到的结果。

var results = db.tables
    .Where(x => EF.Functions.Match(x.Title+x.ArticleContent, "search text"));

我想得到sql语法结果。

select * from articles 
where match(`title`,`article_content`) against('葡萄牙') > 0;

错误 : MySqlConnector.MySqlException (0x80004005):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 '(s.title, COALESCE(s.article_content, ''))) AGAINST ('葡萄牙' IN BOOL...' 第 3 行

If only one field is searched, it can be successful.
But not two.

var results = db.tables
    .Where(x => EF.Functions.Match(x.Title, "search text",MySqlMatchSearchMode.Boolean));

I want to get sql syntax result.

select * from articles 
where match(`title`) against('葡萄牙') > 0;

Below is the result I want to achieve.

var results = db.tables
    .Where(x => EF.Functions.Match(x.Title+x.ArticleContent, "search text"));

I want to get sql syntax result.

select * from articles 
where match(`title`,`article_content`) against('葡萄牙') > 0;

Error :
MySqlConnector.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(s.title, COALESCE(s.article_content, ''))) AGAINST ('葡萄牙' IN BOOL...' at line 3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

标点 2025-01-23 10:17:15

因为我找到了答案,所以分享答案
网址:

var results = db.tables
    .Where(x => EF.Functions.Match(new [] {x.Title,x.ArticleContent}, "search text"));

Because I found the answer, share the answer
URL : <https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/blob/f4b1ab9497743db5a395a36340515b3d3fc28e3c/test/EFCore.MySql.FunctionalTests/Query/MatchQueryMySqlTest.cs >

var results = db.tables
    .Where(x => EF.Functions.Match(new [] {x.Title,x.ArticleContent}, "search text"));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文