【问题标题】:type as you go input for python, rerun code on change to input在输入时输入python,在更改输入时重新运行代码
【发布时间】: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


    【解决方案1】:

    如果我输入或更改任何内容,我想将它放到哪里,它会 自动运行自动完成代码

    不,在 Python 中没有开箱即用的方法可以做到这一点; inputraw_input 都要求用户按下 Enter。以下是一些讨论可能解决方案的 StackOverflow 帖子:

    您选择的解决方案取决于您是否需要跨平台支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2021-07-03
      • 2018-09-21
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多