【发布时间】:2020-12-03 01:23:35
【问题描述】:
我正在尝试使用 elasticsearch 中的一些数据创建一个自动完成演示。我有一个简单的代码,它接受输入,然后返回推荐的自动完成列表。
while True:
search = input("start typing")
body = {
"size": 5,
"query": {
"multi_match": {
"query": "'"+search+"'"
}
}
}
res = es.search(index="autocomplete", body=body) //getting the suggestions
for hit in res['hits']['hits']:
doc = hit["_source"]["company_name"]
print(doc) //printing the suggestions
现在它的工作原理是这样的:
假设我想搜索“Google”。终端会说start typing!,我会输入“G”,按回车,我会得到一个自动完成建议列表,然后它会说start typing!,我会输入“Go”并得到一个新的建议列表,然后下次我输入“Goo”等时,只是想看看当我输入越来越多的单词时自动完成建议是如何变化的。
如果我输入或更改任何内容,它会自动运行自动完成代码,所以我想把它带到哪里“G”,所以它运行“Go”,然后我输入另一个“o”,“g”,“l”,“e”。基本上我希望它像谷歌搜索的正常自动完成一样运行,当你继续输入时,它会更新建议。有没有办法在python中做到这一点?
【问题讨论】:
标签: python elasticsearch autocomplete