2016-11-29 8 views
0

私はelasticsearch-pyを使用しています(バージョンは2.3です)、インデックス付きのすべてのドキュメント(actors、director、genre、plot)から 'title'フィールドだけを返したいとします。 、タイトル、年。elasticsearch-pyソースフィルタを使用した検索

私は現在messages = es.search(index="movies", _source=['hits.hits.title'])をしようとしている、そして得られた応答は次のとおりです。

{u'hits': {u'hits': [{u'_score': 1.0, u'_type': u'movie', u'_id': u'tt0116996', u'_source': {}, u'_index': u'movies'}, {u'_score': 1.0, u'_type': u'movie', u'_id': u'1', u'_source': {}, u'_index': u'movies'}], u'total': 2, u'max_score': 1.0}, u'_shards': {u'successful': 1, u'failed': 0, u'total': 1}, u'took': 2, u'timed_out': False}

私は、フィルタのパスとソースフィールドリストの異なるバージョンを試してみたが、それは右のように見えることはできません。

+0

返された '_source:['title']' –

+0

'{u'hits ':{ 'u'_score':1.0、u'_type ':u'movie'、u'_id ':u'tt0116996'、u'_source ':{u'title':u'Mars Attacks! '、u'_index':u'movies '}、{u'_score':1.0、u'_type ':u'movie'、u'_id ':u'1'、u'_source ':{u' u'_index ':u'movies'}]、u'total ':2、u'max_score':1.0}、u'_shards ':{u' 1、u'timed'out ':False} 'だからまだどこかで何かが見つからない – nmacc

答えて

0

あなたはとソースフィルタリングを適用することができます。

messages = es.search(index="movies", _source=["title"]) 

いますが、まだ応答を解析する必要があります。このために、あなたが何か行うことができます。

titles = [hit["title"] for hit in messages["hits"]["hits"]["_source"]]] 

をあなたがElasticsearchから取得ではなく、詳細な応答をダウンフラットになります(私の知る限りでは)elasticsearch-PY APIには何もありません。

関連する問題