我正在从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函数实现这种简单的查询转换,但是对于复杂的查询,很难管理。任何想法如何转换这样的查询?任何帮助将不胜感激。