在 elasticsearch 中搜索多个字段作为正则表达式查询

search multiple field as regexp query in elasticsearch

我正在尝试按标题和描述等不同字段进行搜索。当我键入关键字时,如果描述或标题包含我键入的关键字,则 elasticseach 必须找到某些内容。这是我的目标。我怎样才能达到我的目标?

你可以看到我在一个字段中使用的示例代码。

  query: {
          regexp: {
            title: `.*${q}.*`,
          },
        },

我也试过下面的一个,但它给出了语法错误。

  query: {
          regexp: {
            title: `.*${q}.*`,
          },
          regexp: {
            description: `.*${q}.*`,
          },
        },

为此,您需要使用 bool 查询。

GET /<you index>/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "regexp": {
            "title": ".*${q}.*"
          }
        },
        {
          "regexp": {
            "description": ".*${q}.*"
          }
        }
      ]
    }
  }
}

您可以找到文档 => [doc]