Multi Field query with query_string over property and nested object

I'm trying to solve the following high level requirement:

  • save arbitrary number of key value pairs on a document with properties: name and description
  • values can be numbers which should be 'range searchable'
  • values can include geo_points which need to be 'geo searchable'

I've created the following index.

{ "settings": { "index" : { "number_of_shards" : 3, "number_of_replicas" : 1 } }, "mappings": { "_doc": { "dynamic": "strict", "properties": { "name": { "type": "text", "analyzer": "german", }, "description": { "type": "text", "analyzer": "german" }, "attributes": { "type": "nested", "properties": { "key": { "type": "text" }, "val_bool": { "type": "boolean" }, "val_int": { "type": "integer" }, "val_float": { "type": "float" }, "val_string": { "type": "text" }, "val_geo": { "type": "geo_point" }, "val_date": { "type": "date" } } } } } } }

We use nested objects to be able to save a list of key-value-pairs for each document. Each key-value-pair uses one typed val_* property to persist the value.

To search in documents we use query_string query to allow users to be very specific in searches. For example. Search documents where name:foo AND description:bar. (that works as expected)

The same scenario should be possible with key-value-pairs.So for example:
attributes.key:someKey AND attributes.val_string:someStringValue.
This scenario requires a nested query which we use and works as expected.

What isnt't working:
If we search for name:foo AND attributes.key:someKey we get no results.

It's seems that 'nested query_string queries' AND 'just query_string queries' arent't supported in combination. Is that true?
What's a feasible workaround to implement the described requirement?

Any help is greatly appreciated. Thank you in advance.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.