【问题标题】:How do you use elasticsearch in python to search over all indices?如何在 python 中使用 elasticsearch 来搜索所有索引?
【发布时间】:2019-03-09 06:40:08
【问题描述】:

这是我的代码:

def search(term):
    s = Search().filter('match_phrase', title=term)
    response = s.execute()
    return response

查看函数,title 是我的索引之一的名称。如何更改它,而不是只搜索一个索引,而是搜索我的所有索引?

【问题讨论】:

    标签: python elasticsearch search


    【解决方案1】:

    您可以通过枚举索引来做到这一点:

    def search(term):
        s = Search(index=['index1', 'index2']).filter('match_phrase', title=term)
        response = s.execute()
        return response
    

    或者像这样使用通配符

    def search(term):
        s = Search(index='index*').filter('match_phrase', title=term)
        response = s.execute()
        return response
    

    【讨论】:

    • 谢谢!但是,当我尝试使用索引列表的第一个解决方案时,我得到一个 NotFoundError ,它告诉我“没有这样的索引”。有任何想法吗?此外,如果您查看行尾,则会出现“title=term”,其中 term 是我要查询的输入,而 title 是其中一个索引的名称。我仍然很困惑我如何在那里表明我想搜索所有索引,而不仅仅是“标题”索引。有什么想法吗?
    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2022-06-18
    相关资源
    最近更新 更多