这是一个最小的例子。
我有一个索引'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')
我在这里做错了什么?
答案 0 :(得分:0)
编辑: 问题创建者找到了解决方案并将其发布在评论中:
已经尝试过,它不起作用。但是,我刚刚找到解决方案,这是属性映射的问题 - 请参阅此问题:stackoverflow.com/questions/18065667/elasticsearch-wont-sort
旧: 不幸的是我无法在这里测试,但尝试这个版本请:
q = pyes.query.MatchAllQuery()
tuple(record['name'] for record in conn.search(q, indices = 'test_index', sort = 'name'))
另请注意,现在有一个用于弹性搜索的官方python api。