【问题标题】:Get sorted search result in pyes在pyes中获取排序的搜索结果
【发布时间】:2013-11-14 23:57:39
【问题描述】:

这是一个最小的例子。

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

我在这里做错了什么?

【问题讨论】:

  • 您可以尝试使用 sort = 'name:ASC' 和 sort = 'name:DESC' 并告诉我们是否有任何区别吗?代码看起来正确 imo。
  • 已经试过了,不行。但是,我刚刚找到了解决方案,这是属性映射的问题 - 看到这个问题:stackoverflow.com/questions/18065667/elasticsearch-wont-sort

标签: elasticsearch pyes


【解决方案1】:

编辑: 问题创建者找到了解决方案并将其发布在 cmets 中:

已经试过了,还是不行。但是,我刚刚找到了解决方案,这是属性映射的问题 - 请参阅此问题: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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多