Mysql 按相关性排序的文本匹配

Mysql 按相关性排序的文本匹配,mysql,database,sorting,textmatching,Mysql,Database,Sorting,Textmatching,在MySQL中,有没有一种方法可以按照同样用于过滤结果的规则集的顺序对结果进行排序 例如如果我们有一个名称字段和来自用户的输入,那么我想按如下方式过滤和排序记录 如果我们将输入与名称字段匹配 精确匹配 输入的第一个关键字与名称完全匹配 输入的第二个关键字与名称完全匹配 名称以第一个关键字开头 名称以第二个关键字开头 我想根据上述案例筛选结果,并按上面列出的顺序排序 输入:两三个 数据: |一个| |两个| |三个| |一二三| |一三二| |三一二| |二三一| 输出: |两个| |三个| |二

在MySQL中,有没有一种方法可以按照同样用于过滤结果的规则集的顺序对结果进行排序

例如如果我们有一个名称字段和来自用户的输入,那么我想按如下方式过滤和排序记录

如果我们将输入与名称字段匹配

  • 精确匹配
  • 输入的第一个关键字与名称完全匹配
  • 输入的第二个关键字与名称完全匹配
  • 名称以第一个关键字开头
  • 名称以第二个关键字开头
  • 我想根据上述案例筛选结果,并按上面列出的顺序排序

    输入:两三个

    数据:
    |一个|
    |两个|
    |三个|
    |一二三|
    |一三二|
    |三一二|
    |二三一|

    输出:
    |两个|
    |三个|
    |二三一|
    |三一二|


    全文搜索可能是一种可能的解决方案,但根据我过去的经验,它并不总是以上述方式给出准确顺序的预期相关性值。

    请提供一些示例数据和预期输出。您是否尝试过将5个单独的查询联合在一起?两个三个不是比两个或三个更好的匹配吗?请提供一些示例数据和预期输出。您是否尝试将5个单独的查询联合在一起?与“2”或“3”匹配不是更好吗?