在pyes中获取排序的搜索结果

时间:2013-11-14 15:05:37

标签: elasticsearch pyes

这是一个最小的例子。

我有一个索引'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')

我在这里做错了什么?

1 个答案:

答案 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。

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