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 wondering if I could do the opposite ... somehow specify one or two fields that I don't want included in the query results (like an attachment, for example). It just seems painful to have to type out all the fields I want minus one or two, when I could just specify fields to exclude
By default, Elasticsearch uses the date format provided in the <field> 's mapping. This value overrides that mapping format. For valid syntax, see format . If a format or date value is incomplete, the range query replaces any missing components with default values.
Elasticsearch optimizes numeric fields, such as integer or long , for range queries. However, keyword fields are better for term and other term-level queries. Identifiers, such as an ISBN or a product ID, are rarely used in range queries. However, they are often retrieved using term-level queries.
Elasticsearch provides a full Query DSL (Domain Specific Language) based on JSON to define queries.
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
,partial
fields can be used to use wildcards to control what part of the_source
will be loaded based oninclude
andexclude
patterns.Both
include
andexclude
support multiple patterns:
{ "query" : { "match_all" : {} }, "partial_fields" : { "partial1" : { "include" : ["obj1.obj2.*", "obj1.obj4.*"], "exclude" : "obj1.obj3.*" } } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With