我有一个带有嵌套对象字段的文档,名为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}