gpt4 book ai didi

使用匹配项或术语的 ElasticSearch 查询?

转载 作者:行者123 更新时间:2023-11-29 02:55:14 24 4
gpt4 key购买 nike

我使用匹配查询来搜索字段“syslog_5424”

{
"query":{
"filtered":{

"query":{"match":{"syslog5424_app":"e1c28ca3-dc7e-4425-ba14-7778f126bdd6"}}
}
}
}

查询结果如下:

{
took: 23,
timed_out: false,
-_shards: {
total: 45,
successful: 29,
failed: 0
},
-hits: {
total: 8340,
max_score: 17.623652,
-hits: [
-{
_index: "logstash-2014.12.16",
_type: "applog",
_id: "AUpTBuwKsotKslj7c27d",
_score: 17.623652,
-_source: {
message: "132 <14>1 2014-12-16T12:16:09.889089+00:00 loggregator e1c28ca3-dc7e-4425-ba14-7778f126bdd6 [App/0] - - Get the platform's MBean server",
@version: "1",
@timestamp: "2014-12-16T12:16:10.127Z",
host: "9.91.32.178:33128",
type: "applog",
syslog5424_pri: "14",
syslog5424_ver: "1",
syslog5424_ts: "2014-12-16T12:16:09.889089+00:00",
syslog5424_host: "loggregator",
syslog5424_app: "e1c28ca3-dc7e-4425-ba14-7778f126bdd6",
syslog5424_proc: "[App/0]",
syslog5424_msg: "Get the platform's MBean server",
syslog_severity_code: 5,
syslog_facility_code: 1,
syslog_facility: "user-level",
syslog_severity: "notice",
@source_host: "%{syslog_hostname}",
@message: "%{syslog_message}"
}
},

...

但是当我将“匹配”更改为“术语”时,我什么也没得到。字段 syslog5424_app 的内容正是“e1c28ca3-dc7e-4425-ba14-7778f126bdd6”,但我无法使用“term”找到它。任何类型的建议都会很好。

    {
"query":{
"filtered":{

"query":{"term":{"syslog5424_app":"e1c28ca3-dc7e-4425-ba14-7778f126bdd6"}}
}
}
}

最佳答案

您在 syslog_5424 字段上使用什么分析器?

如果它是标准分析器,那么数据可能被分解为搜索词。例如

e1c28ca3-dc7e-4425-ba14-7778f126bdd6

分解为:

e1c28ca3
dc7e
4425
ba14
7778f126bdd6

当您使用匹配查询时,您的搜索字符串也会被分解 - 因此会进行匹配。

但是,当您使用术语查询 时,不会分析搜索字符串。即您在 5 个单独的术语中寻找 e1c28ca3-dc7e-4425-ba14-7778f126bdd6 - 它不会匹配

所以 - 我的建议是更新您的映射以使用 not_analyzed - 您通常不需要 UUID 的一部分,因此关闭该字段的所有分析。

关于使用匹配项或术语的 ElasticSearch 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com