如何在弹性搜索中搜索文档
问题描述:
如何搜索job_name
的ES文档? 这是文档的样子:如何在弹性搜索中搜索文档
{"_index":"deedloadjobstatus","_type":"DeedExtract","_id":"AVX0UkVKNGSyAbnrJkor","_score":1.0,
"_source":{"luigi_task_name": "DeedExtract", "job_name": "DeedDowloader2", "successful": 1,
"start_time": "2016-07-16T20:59:21.000Z", "error_message": null, "month": 7, "end_time": "2016-07-16T20:59:21.000Z",
"monthname": "Jul", "year": 2016, "runtime": 0,
"all_params": {"job_name": "DeedDowloader2", "run_date": "2016-07-15"},
"@timestamp": "2016-07-16T20:59:21.000Z", "day": 16}}
我试过以下,但我无法找到。
host:port_number/deedloadjobstatus/_search?jobname:DeedDowloader2
答
您的解决方案应该工作。我想你只是忘了下划线。 (JOB_NAME,而不是作业名称)
如果你愿意,你可以使用词语查询:
{
"query": {
"term": {
"job_name": "DeedDowloader2"
}
}
}
阅读:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html
+0
只有当'job_name'字段被分析时,术语查询才能在这种情况下工作,否则这个查询将不会获取任何结果 – Richa
+0
我想你的意思是'not_analyzed' @Richa。术语查询与存储在倒排索引中的术语匹配。如果分析了该字段,则只有在搜索“deeddowloader2”时才会有结果 –
尝试'主机:端口号/ deedloadjobstatus/_search作业名称? deeddowloader2' –