¿Pueden las consultas de percolador hacer referencia a otros documentos de consulta almacenados en un índice de percolador? Por ejemplo, dado que tengo la siguiente consulta booleana, con _id=1, ya indexada en la cafetera:

{
  "query": {
    "bool": {
      "must": [
        { "term": { "tag": "wow" } }
      ]
    }
  }
}

¿Podría tener otra consulta, con _id=2, indexada (tenga en cuenta que estoy inventando la clave de consulta de términos _percolator_ref_id):

{
  "query": {
    "bool": {
      "should": [
        { "term": { "tag": "elasticsearch" } },
        { "terms" : { "_percolator_ref_id": [1] } }
      ]
    }
  }
}

Si filtre el siguiente documento:

{ "tag": "wow" }

Esperaría que las consultas _id=1 y _id=2 coincidan. ¿Existe alguna funcionalidad como _percolator_ref_id?

¡Gracias!

Editar: Para aclarar, no sé de antemano cuántas referencias de consulta aparecen en una consulta determinada (p. ej., la consulta _id=2 podría hacer referencia a otras 10 consultas potencialmente).

1
doubleswirve 26 sep. 2019 a las 21:45

1 respuesta

La mejor respuesta

Puedes hacer algo como abajo

2 consultas están registradas en el siguiente índice

PUT myindex
{
    "mappings": {
        "properties": {
            "query1": {
                "type": "percolator"    
            },
            "query": {
                "type": "percolator"
            },
            "field": {
                "type": "text"
            }
        }
    }
}

Puede usar bool y debe / debería combinar diferentes consultas

GET /myindex/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "percolate": {
            "field": "query",
            "document": {
              "field": "fox jumps over the lazy dog"
            }
          }
        },
        {
          "percolate": {
            "field": "query1",
            "document": {
              "field": "fox jumps over the lazy dog"
            }
          }
        }
      ]
    }
  }
}
1
jaspreet chahal 27 sep. 2019 a las 04:26