2013-07-26 134 views
1

我对ElasticSearch相当陌生,而且我编写了一个简单的查询来检索由某个用户创建的已保存数据。Elasticsearch查询不会返回id(但是所有其他数据)

查询返回正确的结果,我的问题是结果中缺少id和/或_id字段。所有其他领域都可以过分检索,条件也不错。

你可以建议我,如何将˙id˙字段包含在结果中? 下面是该查询:

{ 
    'filter': { 
    'limit': {'value': 100} 
    }, 
    'query': { 
    'bool': { 
     'should': [ 
     {'term': {'user': 'acct:[email protected]:5000'}} 
     ], 
     'minimum_number_should_match': 1 
    } 
    } 
} 

(我知道我可以编写查询简单,但它的设计,其他条款将被添加到它) 用户字段的定义也很简单:

'user': {'type': 'string', 'index': 'not_analyzed'} 

感谢您的帮助。我知道这可能是一个新手问题,但我无法做到。

+1

'id'应该总是出现在结果中。您可以使用运行此查询时返回的响应吗? – mguillermin

+0

为了确保您知道,'_id'不像其他字段那样是文档正文的一部分。除非在文档中复制'_id',否则不会在结果的_source'部分中看到它。 – ramseykhalaf

+0

您将会得到'_id',但不会与其他字段“不在同一位置”,而不在'_source'中。 – ramseykhalaf

回答

0

为了确保您知道,_id不像其他字段那样是文档正文的一部分。除非您在文档中复制_id,否则在结果的_source部分不会看到它。

您将得到_id返回,但与其他字段不在“相同的地方”,这不在_source,它是一个更高的级别。

相关问题