comando parse - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

comando parse

El parse comando analiza un campo de texto con una expresión regular y añade el resultado al resultado de la búsqueda.

nota

Para ver qué integraciones AWS de fuentes de datos admiten este PPL comando, consulte. Comandos

Sintaxis

Utilice la siguiente sintaxis:

parse <field> <pattern>
field
  • Obligatorio.

  • El campo debe ser un campo de texto.

pattern
  • Cadena obligatoria.

  • Este es el patrón de expresión regular que se utiliza para extraer nuevos campos del campo de texto dado.

  • Si ya existe un nombre de campo nuevo, reemplazará al campo original.

Expresión regular

El patrón de expresiones regulares se utiliza para hacer coincidir todo el campo de texto de cada documento con el motor de expresiones regulares de Java. Cada grupo de captura nombrado en la expresión se convertirá en un campo nuevoSTRING.

Ejemplo 1: Crear un campo nuevo

El ejemplo muestra cómo crear un campo nuevo host para cada documento. hostserá el nombre de host que aparece después @ en el email campo. Al analizar un campo nulo, se devolverá una cadena vacía.

PPLconsulta:

os> source=accounts | parse email '.+@(?<host>.+)' | fields email, host ; fetched rows / total rows = 4/4 +-----------------------+-------------+ | email | host | |-----------------------+-------------| | jane_doe@example.com | example.com | | john_doe@example.net | example.net | | null | | | juan_li@example.org | example.org | +-----------------------+-------------+
Ejemplo 2: anular un campo existente

El ejemplo muestra cómo anular el address campo existente quitando el número de calle.

PPLconsulta:

os> source=accounts | parse address '\d+ (?<address>.+)' | fields address ; fetched rows / total rows = 4/4 +------------------+ | address | |------------------| | Example Lane | | Example Street | | Example Avenue | | Example Court | +------------------+
Ejemplo 3: Filtrar y ordenar por campo procesado

El ejemplo muestra cómo ordenar los números de calle superiores a 500 en el address campo.

PPLconsulta:

os> source=accounts | parse address '(?<streetNumber>\d+) (?<street>.+)' | where cast(streetNumber as int) > 500 | sort num(streetNumber) | fields streetNumber, street ; fetched rows / total rows = 3/3 +----------------+----------------+ | streetNumber | street | |----------------+----------------| | *** | Example Street | | *** | Example Avenue | | 880 | Example Lane | +----------------+----------------+
Limitaciones

El comando parse presenta algunas limitaciones:

  • Los campos definidos por parse no se pueden volver a analizar.

    El siguiente comando no funcionará:

    source=accounts | parse address '\d+ (?<street>.+)' | parse street '\w+ (?<road>\w+)'
  • Los campos definidos por parse no se pueden anular con otros comandos.

    whereno coincidirá con ningún documento ya que street no se puede anular:

    source=accounts | parse address '\d+ (?<street>.+)' | eval street='1' | where street='1' ;
  • El campo de texto utilizado por Parse no se puede anular.

    streetno se analizará correctamente ya address que está anulado:

    source=accounts | parse address '\d+ (?<street>.+)' | eval address='1' ;
  • Los campos definidos por parse no se pueden filtrar ni ordenar después de usarlos en el comando. stats

    whereen el siguiente comando no funcionará:

    source=accounts | parse email '.+@(?<host>.+)' | stats avg(age) by host | where host=pyrami.com ;