2017-10-03 3 views
0

Je souhaite obtenir uniquement les champs _source par la requête, mais il renvoie des occurrences inutiles pour moi.so comment supprimer ces occurrences avant les données _source.Renvoie uniquement les données _source de la requête elasticsearch

GET fms/user/_search?filter_path=hits.hits._source{"query": {"match_all": {}}} 

enter image description here

+1

Cette réponse peut vous aider: https://stackoverflow.com/questions/31569422/elastic-search-exclude-index-and-type-from-json-response/31570789#31570789 (indice: utilisez 'filter_path') – Val

+0

J'utilise déjà filter_path mais je veux juste la partie _source sans les hits et les hits –

+1

Vous obtenez seulement le champ _source seulement, c'est juste qu'il est entouré de hits car il fait partie de JSON._source est imbriqué json element de les coups. –

Répondre

0

Si vous souhaitez filtrer les champs de _Source, vous devriez envisager de combiner le paramètre source_ déjà existant avec le paramètre filter_path comme ceci:

POST /library/book?refresh 
{"title": "Book #1", "rating": 200.1} 
POST /library/book?refresh 
{"title": "Book #2", "rating": 1.7} 
POST /library/book?refresh 
{"title": "Book #3", "rating": 0.1} 

GET /_search? filter_path = hits.hits._source & _source = titre & sort = Évaluation: Desc

{ 
    "hits" : { 
    "hits" : [ { 
     "_source":{"title":"Book #1"} 
    }, { 
     "_source":{"title":"Book #2"} 
    }, { 
     "_source":{"title":"Book #3"} 
    } ] 
    } 
} 

Pour plus de détails, passez à https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html

Comme vous utilisez déjà filter_path, vous obtenez déjà seul champ source uniquement.