我想通过时间范围查询Elasticsearch索引,并且还有一个术语匹配特定的字符串值。通过组合范围和术语匹配json格式来查询Elasticsearch
我已经试过此查询,这似乎非常简单:
{
"query" : {
"bool": {
"must": [
{
"match": {
"method": "/customer/help"
}
},
{
"range" : {
"startTime": {
"from" : "2015-10-20T13:00-04:00",
"to" : "2015-10-20T14:00-04:00"
}
}
}
]
}
}
}
在这种情况下,我想所有给定的时间范围内的文件也有"/customer/help"
方法的价值。
在我的结果中,我收到了在时间范围内的结果,但是我收到的文件有"method"
字段的各种值,当时我只想在该字段中输入"/customer/help"
的结果。
“方法”字段值具有“客户”或“帮助”以及具有预期的“客户/帮助”结果的各种值?在这种情况下,问题在于Elasticsearch正在分析字段(如果没有指定映射,可能是标准分析器)。如果您不希望将来使用该分析仪,那么您可以为该字段设置“index”:“not_analyzed”属性。 – eemp
其他值确实有customer/,但是奇怪的是,如果我单独运行一个查询来排除范围,那么我只会得到result =“customer/help”的结果。 –
你通过了什么大小参数?这只是一个巧合,当你删除范围查询时,你只能看到所有结果的一个子集? – eemp