我是 Elasticsearch 和 Python 的初学者,我在 Elasticsearch 中使用一些数据创建了一个索引,我想使用 python 对这些数据执行查询请求。这是我在 Kibana 开发工具中创建的数据映射:
PUT /main-news-test-data
{
"mappings": {
"properties": {
"content": {
"type": "text"
},
"title": {
"type": "text"
},
"lead": {
"type": "text"
},
"agency": {
"type": "keyword"
},
"date_created": {
"type": "date"
},
"url": {
"type": "keyword"
},
"image": {
"type": "keyword"
},
"category": {
"type": "keyword"
},
"id":{
"type": "keyword"
}
}
}
}
这是我的 Python 代码,其中我们给它一个关键字和一个类别号,它必须检查弹性数据的标题、引导和内容字段中是否有匹配的关键字,并检查输入的类别号和数据类别号并返回/打印出符合此条件的任何对象:
from elasticsearch import Elasticsearch
import json,requests
es = Elasticsearch(HOST="http://localhost", PORT=9200)
es = Elasticsearch()
def QueryMaker (keyword,category):
response = es.search(index="main-news-test-data",body={"from":0,"size":5,"query":{"multi_match":{
"content":keyword,"category":category,"title":keyword,"lead":keyword}}})
return(response)
if __name__ == '__main__':
keyword = input('Enter Keyword: ')
category = input('Enter Category: ')
#startDate = input('Enter StartDate: ')
#endDate = input('Enter EndDate: ')
data = QueryMaker(keyword,category)
print(data)
但是当我将数据提供给输入时,我收到此错误:
elasticsearch.exceptions.RequestError: RequestError(400, 'parsing_exception', '[multi_match] query does not support [content]')
我究竟做错了什么?
编辑:关键字必须包含在标题、线索和内容中,但不必与它们相同
暮色呼如
相关分类