¿Cómo obtengo la longitud de una matriz usando una consulta de búsqueda elástica en la pila ELK?

d8aninja

Estoy usando Kibana y tengo un índice que se parece a este

GET index_name/

{
  "index_name": {
    "aliases": {},
    "mappings": {
      "json": {
        "properties": {
          "scores": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }

Me gustaría obtener la longitud de la scoresmatriz (es decir, cuántos textelementos tiene) para cada registro, con el objetivo final de filtrar los registros cuya longitud sea mayor o igual a 20. Hasta ahora, puedo para identificar (resaltar) cada uno de los registros que ES "20" pero parece que no puedo construir un filtro que luego pueda convertir en un valor booleano (1 para verdadero) para uso posterior / sumar registros que satisfagan la condición. Estoy poniendo esto en el filtro del panel Descubrir, después de hacer clic en 'Editar consulta DSL':

{
  "query": {
    "match": {
      "scores": {
        "query": "20",
        "type": "phrase"
      }
    }
  }
}

EDITAR: un ejemplo de este campo en el documento es:

scores:12, 12, 12, 20, 20, 20

En la vista de la pestaña de la tabla, tiene un al tlado, que significa text. La longitud de este campo varía entre 1 y más de 20 elementos de un registro a otro. Tampoco sé cómo obtener la longitud de este campo (solo) que se me devuelva con una consulta, pero he visto algunas otras respuestas que sugieren algo como esto (que produce un error para mí):

"filter" : {
    "script" : {
        "script" : "doc['score'].values.length > 10"
    }
}
Benjamín Trent

Hay un par de opciones

Esto es para encontrar el número de elementos de cualquier tamaño (separados por ,).

{
  "query": {
    "bool": {
      "filter": {
        "script": {
          "script": {
            "source":"/, /.split(doc['score.keyword'].value).length > 20"
          }
        }
      }
    }
  }
}

NOTA: para el ajuste de la solución anterior script.painless.regex.enabled: trueen elasticsearch.ymlque se requiere.

Si todas las puntuaciones son de un tamaño específico (es decir, solo dos dígitos), una longitud de cadena (como estaba intentando) funcionaría:

{
  "query": {
    "bool": {
      "filter": {
        "script": {
          "script": {
            "source":"doc['scores.keyword'].value.length() > 78"
          }
        }
      }
    }
  }
}

Elegí 78 porque cada elemento (asumiendo 2 dígitos) tiene 2 dígitos + ,== 4, es decir, desea ver más de 20 19 * 4 + 2.

Si a menudo le preocupa el tamaño de este conjunto de puntuaciones, probablemente debería almacenarlo como tal. Puede realizar el procesamiento en su canalización de ingesta con el procesador dividido para lograr esto.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

¿Cómo escribir el mapeo para una matriz de matriz en la búsqueda elástica?

Búsqueda elástica: restringir el resultado de la búsqueda en una matriz

Consulta de debe anidada (OR) dentro de una consulta obligatoria (Y) en la búsqueda elástica

Cómo hacer una coincidencia de varios campos en la búsqueda elástica

Búsqueda elástica de AWS: la búsqueda debe realizarse en todas las combinaciones con una consulta determinada

Convierta la consulta de mysql en una consulta de búsqueda elástica con o sin distancia

Consulta de búsqueda elástica: en una matriz de objetos

Cómo implementar una consulta de búsqueda en el subdocumento de una colección en mongodb usando la biblioteca jenssegers / laravel-mongodb

Cómo implementar una consulta de búsqueda en el subdocumento de una colección en mongodb usando la biblioteca jenssegers / laravel-mongodb

cómo escribir una consulta de búsqueda elástica dinámica en NEST C #

¿Cómo puedo usar no existe o nulo en la consulta de búsqueda elástica (EQL) usando Nest C #?

Cómo resaltar tokens ngram en una palabra usando la búsqueda elástica

¿Cómo inicializar la longitud de una matriz en JavaScript?

Cómo determinar la longitud de una matriz en VBA

Cómo asignar la respuesta de Api a una matriz usando la función de búsqueda

¿Cómo obtengo la longitud de una matriz cuando se cumplen determinadas condiciones?

¿Cómo contar la cantidad de números únicos en una matriz ordenada usando la búsqueda binaria?

Cómo hacer un filtrado de una matriz anidada basada en la clave de búsqueda usando filtros Swift

¿Cómo traducir la consulta de búsqueda elástica anidada en Java?

Cómo agregar max_result_window en la consulta de búsqueda elástica

Encuentre una coincidencia exacta de la búsqueda en una matriz de objetos usando mongodb

Google Script: ¿cómo encontrar el índice de una matriz anidada en la matriz de búsqueda?

Consulta de filtro: no nulo en la búsqueda elástica

crear una plantilla de índice utilizando la API de Java en la búsqueda elástica

¿Buscando una consulta en Linkedin usando la barra de búsqueda? Estoy usando selenio (en python)

¿Cómo formo una consulta de búsqueda en Python para la API de búsqueda de Twitter?

¿Existe un límite de caracteres en una palabra individual dentro de una consulta de frase coincidente en la búsqueda elástica?

¿Cómo preparar una matriz basada en el valor divisible de la longitud de la matriz de personas?

¿Cómo insertar una referencia en la búsqueda de diálogo de consulta?

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    OAuth 2.0 utilizando Spring Security + WSO2 Identity Server

  3. 3

    Manera correcta de agregar referencias al proyecto C # de modo que sean compatibles con el control de versiones

  4. 4

    Ver todos los comentarios en un video de YouTube

  5. 5

    uitableview delete button image in iOS

  6. 6

    ¿Título del selector de SwiftUI?

  7. 7

    Swift / Firebase : Facebook 사용자가 계정을 만들 때 Firebase 데이터베이스에 제대로 저장하려면 어떻게해야합니까?

  8. 8

    ¿Es posible reemplazar los valores de un archivo config.properties a través de TFS?

  9. 9

    Representación de mapas 3D en juegos

  10. 10

    Golang ListenAndServeTLS devuelve datos cuando no se usa https en el navegador

  11. 11

    Declarar propiedades reactivas (agregar bloques de componentes dinámicamente desde la inserción de matriz)

  12. 12

    Cómo hacer que SwiftUI Text multilineTextAlignment comience desde arriba y centro

  13. 13

    Cómo depurar una aplicación React en Visual Studio 2019 usando la plantilla "Blank Node.js"

  14. 14

    Múltiples relaciones en la misma tabla con dos columnas Laravel

  15. 15

    No existe tal archivo o directorio cuando se inicia el nombre del directorio con /

  16. 16

    Verilog : 입력 신호를 한 클럭 주기로 지연시키는 방법은 무엇입니까?

  17. 17

    ¿Cómo hacer un generador de ruido Perlin más suave?

  18. 18

    Problème avec le dessin d'un élément Qml avec des appels OpenGL bruts

  19. 19

    El nombre 'HttpContext' no existe en el contexto actual en Razor

  20. 20

    WPF pleine largeur DataGridColumn sur la largeur de DataGrid

  21. 21

    Tengo algunos problemas con el syscall de golang cuando llamo a dll en win7-64

CalienteEtiquetas

Archivo