Existe-t-il un moyen de dire à elasticsearch de ne renvoyer aucune métadonnée? Actuellement, je peux sélectionner les champs que je veux être renvoyés dans la source. Mais je ne veux que des champs dans la source. Je préférerais que les métadonnées ne soient pas renvoyées car je n'en ai pas besoin et éviterais des analyses et des transports inutiles, etc.
J'ai trouvé Elasticsearch - Comment renvoyer uniquement des données, pas des méta-informations? question plus ancienne où quelqu'un a commenté qu'il n'était pas possible de le faire alors. Vous vous demandez si cette fonctionnalité a été ajoutée ou est toujours manquante?
Toutes les API REST acceptent un paramètre filter_path qui peut être utilisé pour réduire la réponse renvoyée par elasticsearch. Ce paramètre prend un liste de filtres séparés par des virgules exprimés avec la notation par points:
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 python
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 vous souhaitez filtrer les champs _source, vous devriez envisager de combiner le déjà existant Paramètre _source (voir Obtenir l'API pour plus de détails) avec le paramètre filter_path comme ceci:
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"}
} ]
}
}
Ce n'est pas si difficile si on le sait :)
http://localhost:9200/***{index_name}***/***{type}***/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score,**hits.hits._source**
Je ne connais pas de telles options dans une requête. Il est possible de faire cela dans une requête get by id.
/{index}/{type}/{id}/_source
http://www.elasticsearch.org/guide/fr/elasticsearch/reference/current/docs-get.html#_source
filter_path
(filtrage de réponse) n'a aucun effet sur la version 1.5 de elasticsearch.
À moins que l'option ne porte un nom différent ou soit déplacée dans la documentation, elle a d'abord été ajoutée dans version 1.6 .