elasticsearch,logging,Python,elasticsearch,Logging" /> elasticsearch,logging,Python,elasticsearch,Logging" />

Elasticsearch使用Python在控制台上打印PUT语句

Elasticsearch使用Python在控制台上打印PUT语句,python,elasticsearch,logging,Python,elasticsearch,Logging,我用Python编写了以下代码,以使用ElasticSearch对数据执行搜索: def main(): start = (time.time()) es = Elasticsearch() es.indices.create(index='bhar',body = { "settings":{ "analysis":{

我用Python编写了以下代码,以使用ElasticSearch对数据执行搜索:

def main():
    start = (time.time())
    es = Elasticsearch()

    es.indices.create(index='bhar',body = {
                                 "settings":{
                                     "analysis":{
                                         "analyzer":{
                                             "my_stop_analyzer":{
                                                 "type":"custom",
                                                 "tokenizer":"standard",
                                                 "filter":["english_possessive_stemmer","lowercase","english_stop","english_stemmer"]
                                                 }
                                             },
                                          "filter":{
                                             "english_stop":{
                                             "type":"stop",
                                             "stopwords":"_english_"
                                             },
                                             "english_stemmer":{
                                             "type":"stemmer",
                                             "name":"english"
                                             },
                                             "english_possessive_stemmer": {
                                             "type":       "stemmer",
                                             "language":   "possessive_english"
                                             }
                                             }
                                             }
                                             },
                                 "mappings":{
                                     "my_type":{
                                         "properties":{
                                             "test": {
                                             "type":"text",
                                             "analyzer" : "my_stop_analyzer"
                                                 }
                                                 }
                                                 }
                                                 }
                                                 })


data = {"rid":"1","test": "This data BHX1 Pick Tower extension"}
res = es.index(index='bhar',doc_type='news',id=1,body=data,refresh=True)

query='pick tower'


match = es.search(index="bhar",body = {
                "query": {
                    "match":{
                        "test":{
                            "query":query.replace('|',' '),
                            "operator" :"AND"
                        }
                    }
                    }
                }
            )
if match['hits']['total']:
        print(match['hits']['hits'][0]['_source'])



if __name__ == '__main__':
    main()
执行此代码时,我得到以下输出:

PUThttp://localhost:9200/bhar [状态:400请求:0.027s]

{'rid':'1','test':'This data BHX1 Pick Tower extension'}


如何控制屏幕上的PUT语句?可能会将其发送到日志文件,或者只是不在屏幕上打印。有什么想法吗?感谢阅读。

您在屏幕上看到的打印行是由于以下
logger.info()
调用导致的:


如果您不想打印出来,只需使用开关运行代码,即可在执行弹性搜索查询之前添加以下行,然后POST响应将不会记录到日志文件中

logging.getLogger('elasticsearch').setLevel(logging.ERROR)

您可以尝试防止这种情况,但如何首先删除屏幕上的打印?有没有办法做到这一点?这是一个需要调整的日志配置。@Val你能告诉我怎么做吗?
connection/base.py
?我在哪里能找到这个剧本?读我回答的最后一句话是的。我是说,对不起,我没能得到它。我正在努力。我还没有在代码中的任何地方使用日志记录。因此,我感到困惑的是,它不在您的代码中,而是在您正在使用的
elasticsearch py
库的代码中。命令行上的开关只是指示
elasticsearch py
库使用的日志库不打印任何低于警告级别的内容,其中包括您看到的
PUT
语句。是的。我找到了剧本。知道了。我现在将尝试修改它。我还没有看到任何级别选项
logging.getLogger('elasticsearch').setLevel(logging.ERROR)