将App Engine搜索API查询转换为ElasticSearch查询

时间:2019-06-28 08:04:03

标签: python google-app-engine elasticsearch google-search-api

我正在从App Engine迁移现有的python 2.7项目。在我的代码中,Document Search API被广泛使用。我正在使用Elasticsearch在应用程序引擎外部替换它。

我创建了一个基本处理程序,以用Elastic搜索处理程序替换文档的创建和删除。但是我一直在搜索文档。

在App Engine搜索API中,有许多不同类型的查询可用(请查看docs),我正在考虑创建一个函数以将这些查询替换为弹性搜索兼容查询。< / p>

例如, 一个简单的Search API查询如下:

search_query = "forFromDate : 2019-06-01 forToDate : 2019-07-01"

,但是用于弹性搜索的相同查询将是:

es_query = {
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "forToDate": "2019-07-01"
                    }
                },
                {
                    "match": {
                        "forFromDate": "2019-06-01"
                    }
                }
            ]
        }
    }
}

我可以使用简单的python函数实现这种简单的查询转换,但是对于复杂的查询,很难管理。任何想法如何转换这样的查询?任何帮助将不胜感激。

0 个答案:

没有答案