测试 Grok 模式 API

编辑

在文本行上测试 Grok 模式,另请参阅 Grokking grok

请求

编辑

GET _text_structure/test_grok_pattern

POST _text_structure/test_grok_pattern

描述

编辑

测试 Grok 模式 API 允许你在一个或多个文本行上执行 Grok 模式。它返回这些行是否与模式匹配,以及匹配子字符串的偏移量和长度。

查询参数

编辑
ecs_compatibility
(可选,字符串)与 ECS 兼容的 Grok 模式的兼容模式。当结构查找器创建 Grok 模式时,使用此参数指定是否使用 ECS Grok 模式而不是旧版模式。有效值为 disabledv1。默认值为 disabled

请求主体

编辑
grok_pattern
(必需,字符串)要在文本行上运行的 Grok 模式。
text
(必需,字符串数组)要在其上运行 Grok 模式的文本行。

示例

编辑
resp = client.text_structure.test_grok_pattern(
    grok_pattern="Hello %{WORD:first_name} %{WORD:last_name}",
    text=[
        "Hello John Doe",
        "this does not match"
    ],
)
print(resp)
response = client.text_structure.test_grok_pattern(
  body: {
    grok_pattern: 'Hello %{WORD:first_name} %{WORD:last_name}',
    text: [
      'Hello John Doe',
      'this does not match'
    ]
  }
)
puts response
const response = await client.textStructure.testGrokPattern({
  grok_pattern: "Hello %{WORD:first_name} %{WORD:last_name}",
  text: ["Hello John Doe", "this does not match"],
});
console.log(response);
GET _text_structure/test_grok_pattern
{
  "grok_pattern": "Hello %{WORD:first_name} %{WORD:last_name}",
  "text": [
    "Hello John Doe",
    "this does not match"
  ]
}

API 返回以下响应

{
  "matches": [
    {
      "matched": true,
      "fields": {
        "first_name": [
          {
            "match": "John",
            "offset": 6,
            "length": 4
          }
        ],
        "last_name": [
          {
            "match": "Doe",
            "offset": 11,
            "length": 3
          }
        ]
      }
    },
    {
      "matched": false
    }
  ]
}