ElasticSearch-Termaggregation

Ich versuche, eine Termaggregation mithilfe der elastischen Suche nach den folgenden Daten mit der folgenden Abfrage durchzuführen. Die Ausgabe unterteilt die Namen in Token (siehe Ausgabe unten). Also habe ich versucht, den os_name als multi_field abzubilden und jetzt kann ich nicht mehr danach fragen. Ist es möglich, einen Index ohne Token zu haben? wie "Fedora Core"?

Abfrage:

GET /temp/example/_search
{
  "size": 0,
  "aggs": {
     "OS": {
       "terms": {
           "field": "os_name"
       }
     }
  }
}

Daten:

...
    {
        "_index": "temp",
        "_type": "example",
        "_id": "3",
        "_score": 1,
        "_source": {
           "title": "system3",
           "os_name": "Fedora Core",
           "os_version": 18
        }
     },
     {
        "_index": "temp",
        "_type": "example",
        "_id": "1",
        "_score": 1,
        "_source": {
           "title": "system1",
           "os_name": "Fedora Core",
           "os_version": 20
        }
     },
     {
        "_index": "temp",
        "_type": "example",
        "_id": "2",
        "_score": 1,
        "_source": {
           "title": "backup",
           "os_name": "Yellow Dog",
           "os_version": 6
        }
     }
...

Ausgabe:

       ...
        {
           "key": "core",,
           "doc_count": 2
        },
        {
           "key": "fedora",
           "doc_count": 2
        },
        {
           "key": "dog",
           "doc_count": 1
        },
        {
           "key": "yellow",
           "doc_count": 1
        }
       ...

Kartierung:

PUT /temp
{
  "mappings": {
    "example": {
      "properties": {
        "os_name": {
          "type": "string"
        },
        "os_version": {
          "type": "long"
        },
        "title": {
          "type": "string"
        }
      }
    }
  }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage