0

これは最小限の例です。

'test_index'次のレコードを含むインデックスがあります。

{u'name': u'b'}
{u'name': u'e'}
{u'name': u'a'}
{u'name': u'c'}
{u'name': u'd'}

'name'フィールドのアルファベット順にレコードを取得したい。引数を使用しsortますが、結果はソートされません:

q = pyes.query.MatchAllQuery().search()
tuple(record['name'] for record in conn.search(q, indices = 'test_index', sort = 'name'))

結果:

(u'b', u'c', u'd', u'e', u'a')

ここで何が間違っていますか?

4

1 に答える 1

0

編集:質問の作成者が解決策を見つけてコメントに投稿しました:

すでに試しましたが、うまくいきません。ただし、解決策を見つけたところです。これは属性マッピングの問題でした-この質問を参照してください:stackoverflow.com/questions/18065667/elasticsearch-wont-sort

Old: 残念ながら、ここではテストできませんでしたが、このバージョンを試してください:

q = pyes.query.MatchAllQuery()
tuple(record['name'] for record in conn.search(q, indices = 'test_index', sort = 'name'))

また、エラスティック検索用の公式の python API があることにも注意してください。

http://elasticsearch-py.readthedocs.org/en/latest/

于 2013-11-14T15:57:39.860 に答える