我必须搜索文本字段“body”包括“balance for subscriber with san”和“exclude”的文档,在调用reip适配器后找不到。我在kibana中创建kql请求:
body:“具有san的订阅者的余额”而不是body:“在调用reip适配器后找不到”
但结果包括两个条件,如:“用户与san的平衡”和“调用reip适配器后未找到”。为什么在我的结果中出现“带san的订户余额”和“调用reip适配器后找不到”?
检查kql请求:
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"filter": [
{
"bool": {
"should": [
{
"match_phrase": {
"Body": "Balance for subscriber with SAN"
}
}
],
"minimum_should_match": 1
}
},
{
"bool": {
"must_not": {
"bool": {
"should": [
{
"match_phrase": {
"Body": "was not found after invoking reip-adapter"
}
}
],
"minimum_should_match": 1
}
}
}
}
]
}
},
{
"range": {
"Timestamp": {
"format": "strict_date_optional_time",
"gte": "2020-08-29T08:24:55.067Z",
"lte": "2020-08-29T10:24:55.067Z"
}
}
}
],
"should": [],
"must_not": []
}
}
“and not”条件不起作用,响应:
-----omitted--------
"_source": {
"prospector": {},
"Severity": "INFO",
"uuid": "e71b207a-42a6-4b2c-98d1-b1094c578776",
"Body": "Balance for subscriber with SAN=0400043102was not found after invoking reip-adapter.",
"tags": [
"iptv",
"beats_input_codec_plain_applied"
],
"source": "/applogs/Iptv/app.log",
"host": {
"name": "e38"
},
"offset": 23097554,
"pid": "2473",
"Configuration": "IptvFacadeBean",
"Timestamp": "2020-08-29T10:24:50.040Z",
"@timestamp": "2020-08-29T10:24:50.446Z",
"input": {}
}
-----omitted--------
1条答案
按热度按时间dluptydi1#
正在为其编制索引的索引数据
Body
字段为:“body”:“调用reip适配器后,找不到san=0400043102的订阅服务器的余额。”
这一数字与过去的(
0400043102was
),因此生成的令牌是:代币包括:
因此,当你试图
match_phrase
这样地:没有代币
was
因此,文档匹配must_not
条件不起作用。索引数据:
搜索查询
搜索结果: