首页 > 解决方案 > Elastisearch 多匹配搜索无法正常工作

问题描述

我在 elasticsearch 中有一个用户,用户的全名是 Mike John Khosa,用户名是 mikekhosa。因此,当我搜索用户 khosa 时,该用户应该进入搜索结果,但在我目前的情况下当前未搜索。下面是我的工作代码

{
  "from": 0,
  "size": 40,
  "sort": [
    {
      "username.raw": {
        "order": "desc"
      }
    }
  ],
  "_source": [
    "id",
    "uid",
    "username",
    "full_name",
    "picture",
    "bucket"
  ],
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "type": "user"
          }
        },
        {
          "term": {
            "db_id": 27428
          }
        },
        {
          "multi_match": {
              "query": "khosa",
              "type": "cross_fields",
              "fields": [
                "username.raw",
                "username",
                "full_name.raw",
                "full_name"
              ]
            }
        }
      ],
      "must_not": {
        "terms": {
          "id": [
            "u-2",
            "u-19712"
          ]
        }
      }
    }
  }
}

我在谷歌上搜索了超过 5 个小时,但未能实施好的解决方案。我不知道我在哪里做错了

标签: elasticsearch

解决方案


推荐阅读