Python, AWS Elasticsearch migration to Azure



我已经完全构建了这个项目,并将其推送到了AWS,Elasticsearch查询工作得很好。现在我已经通过Azure进行了身份验证。创建了我的索引,可以做一个简单的"选择所有查询";并取回记录。但是,当我试图让我原来的AWS弹性搜索查询工作时,它就是拒绝工作。

你能帮我解决我的问题吗?

AWS代码该代码在AWS上运行并正在生产中。随着我们迁移到Azure,它将被退役。

def request_search():
try:
error = None
if request.method == 'POST':
host = ''
region = 'us-west-2'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

es = Elasticsearch(
hosts=[{'host': host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
search_term = request.form['input']
res= es.search(index=myindex,  scroll = '2m', doc_type='_doc',body={
"query": {
"multi_match" : {
"query":    search_term,
"fields": [ "creator", "date", "receipt", "sales", "category"],
"fuzziness" : "AUTO",
"prefix_length" : 0
}
}
},
size=1000)
res['ST']=search_term 
return render_template('results.html', res=res, search_term=search_term)
else:
#return to search page. 
return render_template('index.html')
except Exception as e:
return render_template("404_generic", error = str(e))

Azure代码--不工作

if request.method == 'POST':
#search_term = "Hotel"
search_term = request.form['input']
#print("The search term is: " + search_term)
res= es.search(index="myindex", scroll = '2m', doc_type='_doc', query={
"multi_match" : {
"query":    "search_term",
"fuzziness": 2,
"fields": [ "creator", "date", "receipt", "sales", "category"],
"fuzziness" : "AUTO",
"prefix_length" : 0

}
},
size=1000)
res['ST']=search_term 
return render_template('index.html',
res=res,
search_term=search_term                          
)

问题是,我使用Azure Cognitive Search从AWS迁移到Azure,而不是ElasticSearch。本指南帮助迁移并消除了混乱。

https://azuresdkdocs.blob.core.windows.net/$web/python/azure search/1.0.0b1/index.html#

最新更新