I know to use the fields setting to include just the fields I want in a search http://www.elasticsearch.org/guide/reference/api/search/fields/
... but I was wonderin
You can use Source Filtering (Tested in v. 1.6 and v. 1.7): https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html
{
"_source": {
"include": [ "obj1.*", "obj2.*" ],
"exclude": [ "*.description" ]
},
"query" : {
"term" : { "user" : "kimchy" }
}
}
You can also use it in GET request:
curl "localhost:9200/myindex/mytype/66a8f299870b4cab?_source_exclude=file._content&pretty"
The previous example exclude the file content in an attachment field.
Did you see the documentation for ‛partial‛ on the same page you linked in your question? That allows you to do what you want, albeit only on ‛_source‛ fields I believe. See https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-request-fields.html
When loading data from
_source,partialfields can be used to use wildcards to control what part of the_sourcewill be loaded based onincludeandexcludepatterns.Both
includeandexcludesupport multiple patterns:
{
"query" : {
"match_all" : {}
},
"partial_fields" : {
"partial1" : {
"include" : ["obj1.obj2.*", "obj1.obj4.*"],
"exclude" : "obj1.obj3.*"
}
}
}