aws - Filtre los campos de metadatos y solo devuelva los campos de origen en elasticsearch
elasticsearch tutorial (4)
¿Hay una manera de decirle a elasticsearch que no devuelva metadatos? Actualmente puedo seleccionar qué campos quiero devolver en la fuente. Pero solo quiero campos en fuente. Preferiría que no me devuelvan los metadatos, ya que no los necesito y me ahorraría algunos análisis y transportes innecesarios, etc.
Encontré Elasticsearch: ¿cómo devolver solo datos, no metainformación? Pregunta más antigua donde alguien comentó que no era posible hacerlo entonces. ¿Se pregunta si esta funcionalidad se ha agregado o si todavía falta?
No es tan difícil si lo sabemos :)
http://localhost:9200/***{index_name}***/***{type}***/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score,**hits.hits._source**
No sé opciones como esta en una consulta. Es posible hacer esto en una solicitud de obtener por Id.
/{index}/{type}/{id}/_source
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html#_source
Todas las API REST aceptan un parámetro filter_path que puede usarse para reducir la respuesta devuelta por elasticsearch. Este parámetro toma una lista de filtros separados por comas expresados con la notación de puntos:
curl -XGET ''localhost:9200/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score''
{
"took" : 3,
"hits" : {
"hits" : [
{
"_id" : "3640",
"_score" : 1.0
},
{
"_id" : "3642",
"_score" : 1.0
}
]
}
}
En pitón
def get_all( connection, index_name, type_name ):
query = {
"match_all":{}
}
result = connection.search( index_name, type_name,
{"query": query},
filter_path= ["took", "hits.hits._id", "hits.hits.score"])
return result
Si desea filtrar los campos _source, debe considerar combinar el parámetro _source ya existente (consulte Obtener API para obtener más detalles) con el parámetro filter_path como este:
curl -XGET ''localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title''
{
"hits" : {
"hits" : [ {
"_source":{"title":"Book #2"}
}, {
"_source":{"title":"Book #1"}
}, {
"_source":{"title":"Book #3"}
} ]
}
}
filter_path
(filtrado de respuestas) no tiene ningún efecto para la versión 1.5 de elasticsearch.
A menos que la opción tuviera un nombre diferente o se moviera en la documentación, primero se agregó en la versión 1.6 .