为什么弹性搜索 returns 在尝试索引时响应 <Response [400]>?

Why does elastic search returns response <Response [400]> when trying to index?

我试图按照教程进行操作 - http://ethen8181.github.io/machine-learning/search/bm25_intro.html#ElasticSearch-BM25

我通过 运行 作为守护进程成功启动了我的弹性节点,它确实在发出查询时做出响应 - curl -X GET "localhost:9200/

当我在这里尝试 运行 以下代码时,它 returns 400。


settings = {
    'settings': {
        'index': {
            'number_of_shards': 1,
            'number_of_replicas': 1,

            'similarity': {
                'default': {
                    'type': 'BM25'
                }
            }
        }
    },
   
    'mappings': {
        '_doc': {
            'properties': {
                'title': {
                    'type': 'text',
                    'analyzer': 'english'
                }
            }
        }
    }
}
headers = {'Content-Type': 'application/json'}
response = requests.put('http://localhost:9200/experiment', data=json.dumps(settings), headers=headers)
response

我做错了什么,我该如何解决?

我基本上是在尝试索引一组文档并使用 BM25 排名函数检索它们。

调用response.json()response.text会给你响应正文,它可能会告诉你请求到底出了什么问题