我使用的是旧版的弹性搜索,我找不到一种方法来允许像sql这样的完全搜索:'%%'
我必须搜索一个未知的数据,所以“列”是未知的。
例如 我有此列作为示例行:
source,dest,message
eth0, eth1, DELIVERY 3015801: SUCCESS: DID
在搜索表单中,用户编写如下内容:
+message:"delivery"
or
+message:"delivery" and +source:"eht0"
该行成功返回。 不幸的是,如果他们写:
+message:"success"
由于“:”不返回任何行
我需要允许用户编写如下内容:
+message:"success*"
这是提交的查询。我有时间范围过滤器,然后有查询:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"from": 1561615860000,
"to": 1561619519000
}
}
}
]
}
},
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "+message:\"success\""
}
}
]
}
}
}
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
有没有一种方法可以将我的文本搜索转换为sql
message like 'success%'
谢谢。
答案 0 :(得分:0)
是已分析或未分析的字段吗?也许prefix query是您想要的。
但通常:
LIKE
搜索。