如何从Elasticsearch中的桶术语聚合中获取源字段

时间:2018-03-09 05:49:50

标签: elasticsearch

我有一个带有嵌套对象字段的文档,名为category。在category内,它会存储类别的名称以及适用的parent类别的名称。我正在进行聚合以按类别对交易进行分组。我遇到的问题是,ES正在回归那些被分析过的"" category.name的版本。当实际名称是"服装"时,它正在返回"服装"。如何让ES返回我存储的实际内容。另外,这是最好的方法吗?在我的关系数据库中,我有一个与该类别相关的主键,我是否应该将其存储在ES中。

供参考,这是我提交的查询。

// Search for the string "lees" and add grouping by category.name
{'aggs': {'group_by_category': {'terms': {'field': 'category.name'}}},
 'query': {'match': {'description': {'fuzziness': 2, 'query': 'lees'}}}}

这就是回应。

{'_shards': {'failed': 0, 'skipped': 0, 'successful': 1, 'total': 1},
 'aggregations': {'group_by_category': {'buckets': [{'doc_count': 1,
                                                     'key': 'clothing'}],
                                        'doc_count_error_upper_bound': 0,
                                        'sum_other_doc_count': 0}},
 'hits': {'hits': [{'_id': '4',
                    '_index': 'transactions',
                    '_score': 0.2876821,
                    '_source': {'account': {'name': 'Primary'},
                                'amount': 9800.0,
                                'category': {'name': 'Clothing',
                                             'parent': None},
                                'created_by': 'someuser',
                                'date': '2018-02-05',
                                'description': 'Lees',
                                'title': 'Shoes',
                                'title_suggest': 'Shoes'},
                    '_type': 'transaction_document'}],
          'max_score': 0.2876821,
          'total': 1},
 'timed_out': False,
 'took': 1}

0 个答案:

没有答案