Is it possible to produce a “Temporary Field” during a search request?


(Eric Kim) #1

Sample Document:

{
    "text": "this is my text",
    "categories": [
        {"category": "sample category"},
        {"category": "local news"}
    ]
}

The mapping currently is:

{
    "topic": {
        "properties": {
            "categories": {
                "properties": {
                    "category": {
                        "type": "string",
                        "store": "no",
                        "term_vector": "with_positions_offsets",
                        "analyzer": "ik_max_word",
                        "search_analyzer": "ik_max_word",
                        "include_in_all": "true",
                        "boost": 8,
                        "fields": {
                            "raw": {
                                "type": "string",
                                "index": "not_analyzed"
                            }
                        }
                    }
                }
            }
        }
    }
}

Search query:

{
    "_source": false,
    "query":{
        "match":{
            "categories.category":"news"
        }
    },
    "aggs": {
        "match_count": {
            "terms" : {"field": "categories.category.raw"}
        }
    }
}

The result I want it to be:

{
    ...
    "buckets": [
        {
            "key": "local news",
            "doc_count": 1
        } 
       
    ]
    ...
}

The result actually is (it aggregates all matching documents' categories.category):

{
    ...
    "buckets": [
        {
            "key": "local news",
            "doc_count": 1
        },{
            "key": "sample category", //THIS PART IS NOT NEEDED
            "doc_count": 1
        }
    ]
    ...
}

Is it possible to add a temporary field during a search? In this case let's say name all the matching categories.category as categories.match_category, and aggregates by this temporary field categories.match_category? If true how can I do it and if not what should I do then?


(system) #2