【问题标题】:Query DSL regexp pattern doesn't work with some strings查询 DSL 正则表达式模式不适用于某些字符串
【发布时间】:2021-09-02 00:33:20
【问题描述】:

我有一个模式“.TP-V.”,它返回类似“SSTP-VPN”的字符串。但是模式“.SSH.”没有返回任何东西,尽管有像“core:Login:SSH:Cisco”这样的行。我不知道需要什么模式。

【问题讨论】:

标签: elasticsearch elasticsearch-dsl


【解决方案1】:

您需要使用".*SSH.*" 而不是".SSH."。 添加一个工作示例 -

索引数据:

{
    "name":"core:Login:SSH:Cisco"
}
{
    "name":"SSTP-VPN"
}

搜索查询:

{
  "query": {
    "regexp": {
      "name.keyword": {
        "value": ".*SSH.*"
      }
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "68015371",
        "_type": "_doc",
        "_id": "2",
        "_score": 1.0,
        "_source": {
          "name": "core:Login:SSH:Cisco"
        }
      }
    ]

搜索查询:

{
  "query": {
    "regexp": {
      "name.keyword": {
        "value": ".*TP-V.*"
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2021-09-15
    相关资源
    最近更新 更多