python - Python 中的 Elasticsearch 查询不返回所有结果
问题描述
我是 python 和弹性搜索的新手,我编写了一个弹性搜索 python 查询代码,它必须接收一些数据(关键字或类别)并将查询发送到 ES 数据库;然后在我的控制台中检索并打印匹配的数据:
def SingleKeywordQuery (keyword):
response = es.search(index="main-news-test-data",body={"from":0,"size":10000,"query":{"multi_match":{
"query": keyword,
"fields": [ "content", "title", "lead" ]
}}})
return(response)
def SingleCategoryQuery (category):
response = es.search(index="main-news-test-data",body={"from":0,"size":10000,"query":{"match":{"category": category}}})
return(response)
if __name__ == '__main__':
keyword = input('Enter Keyword: ')
category = input('Enter Category: ')
mapCategory = Mapper(category)
...
elif keyword != '' and mapCategory is None:
data = SingleKeywordQuery(keyword)
print(data)
elif keyword == '' and mapCategory is not None:
mapCategory = eval(mapCategory)
print(mapCategory)
data = SingleCategoryQuery(mapCategory)
print(data)
elif keyword == '' and mapCategory is None:
print('Please select a filter')
问题是,我的代码只检索结果之一。就像,我知道有 3 个数据包含我想要的类别编号或 2 个数据包含我想要的关键字,但它只返回一个。似乎是什么问题?
编辑:Elasticsearch 的数据映射
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"
}
}
}
}
这是我使用 Bulk API 上传的 BULK 数据:
{ "index" : { "_index" : "main-news-test-data", "_id" : "1" } }
{
"content":"\u0641\u0647\u06cc\u0645\u0647 \u062d\u0633\u0646\u200c\u0645\u06cc\u0631\u06cc: \u0627\u06af\u0631\u0686\u0647 \u062f\u0631 \u0647\u06cc\u0627\u0647\u0648\u06cc ",
"title":"\u06a9\u0627\u0631\u0647\u0627\u06cc \u0642\u0627\u0644\u06cc\u0628\u0627\u0641",
"lead":"\u062c\u0627\u0645\u0639\u0647 > \u0634\u0647\u0631\u06cc -.",
"agency":"13",
"date_created":1494518193,
"url":"http://www.khabaronline.ir/(X(1)S(bud4wg3ebzbxv51mj45iwjtp))/detail/663749/society/urban",
"image":"uploads/2017/05/11/1589793661.jpg",
"category":"15",
"id":"2981643"
}
{ "index" : { "_index" : "main-news-test-data", "_id" : "2" } }
{
....
解决方案
推荐阅读
- com-port - Märklin 模型铁路控制:ComPort - 从轨道检测模块/Win Power Shell 读取转储字节
- c# - 如何正确定义要创建的不同对象的数量?
- java - JTextPane 未触发 UndoableEditListener 事件
- sql - 如何构建查询,以便我可以找到所有事件以及额外的布尔列“参加”,这是参加者表的连接?
- assembly - 如何使用 NASM 交换 64 位寄存器中的字节?
- linux - docker.service 处于活动状态(运行)时找不到 Docker 命令
- python - 如何使用 List Comprehensions 将字符串转换为方程式
- go - 尝试在 Golang 中使用 crypto/aes 验证 NIST AES 示例 vectos
- java - Tomcat 网页无法使用 Spring Framework 打开
- python - 将多个字典与相同的键组合起来,并附加它们的值