我想在我存储在ES中的某些日志上运行分面查询。日志看起来像Elasticsearch:分面查询条件返回意想不到的结果
{"severity": "informational","message_hash_value": "00016B15", "user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1", "host": "192.168.8.225", "version": "1.0", "user": "[email protected]", "created_timestamp": "2013-03-01T15:34:00", "message": "User viewed contents", "inserted_timestamp": "2013-03-01T15:34:00"}
我试图运行的查询是
curl -XGET 'http://127.0.0.1:9200/logs-*/logs/_search'
-d {"from":0, "size":0,
"facets" : {
"user" : {
"terms" : {"field" : "user", "size" : 999999 } } } }
注意,在日志领域"user"
是一个电子邮件地址。现在问题是我使用的terms-facet
搜索查询返回用户字段的列表,如下所示。
u'facets': {u'user': {u'_type': u'terms', u'total': 2004, u'terms': [{u'count': 1002,u'term': u'test.co'}, {u'count': 320, u'term': u'user_1'}, {u'count': 295,u'term': u'user_2'}
注意,列表中包含term
{u'count': 1002,u'term': u'test.co'}
这是域名用户的电子邮件地址。为什么elasticsearch将域名视为一个单独的术语?
运行查询,检查映射
curl -XGET 'http://127.0.0.1:9200/logs-*/_mapping?pretty=true'
产生的"user"
场
"user" : {
"type" : "string"
},
出色答卷。 +1用于参考和重新索引。干杯 – auny 2013-04-04 19:59:18