elasticsearch - 如何过滤具有包含子字符串的字段的文档
问题描述
我有一个包含以下字段的文档:
"data": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
并且在对 kibana 执行查询时,我想过滤所有具有类似sendMessageFromAgent
. 我不想执行查询,我想过滤它们。
该字段的示例如下:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><S:Body><ns2:sendMessageFromAgent xmlns:ns2="http://blahblah/"><ns2:session><ns2:id>a-session-id</ns2:id></ns2:session><ns2:userId><ns2:id>624962268835</ns2:id></ns2:userId><ns2:messages><ns2:message><ns2:text>we have some text here</ns2:text><ns2:sentTimeMillis>1288851099000</ns2:sentTimeMillis></ns2:message></ns2:messages></ns2:sendMessageFromAgent></S:Body></S:Envelope>
我尝试将以下 DSL 查询作为新的 kibana 过滤器放置,但没有返回任何内容:
{
"wildcard": {
"data": "*sendMessageFromAgent*"
}
}
解决方案
Easy-peasy:添加一个 kibana 过滤器并使用以下 DSL:
{
"match": {
"data": {
"operator": "AND",
"query": "sendMessageFromAgent <other-strings-if-needed>"
}
}
}
data
这将在字段上执行全文搜索
推荐阅读
- python - 未绑定方法调用中的参数“更改”没有值
- rust - 如何从 secp256k1 中提取未压缩的公钥?
- api - Facebook Workplace:对话 API 错误“(#2) 服务暂时不可用”
- java - 使用 StringBuilder 编写 XML vs XML 库
- c# - 如何在 C# 中存储和调用临时变量
- amazon-web-services - CodePipeline:taskdef.json 和 appsec.yaml 的用途是什么?
- node.js - 创建 Mongoose BulkWrite 插件
- javascript - 基于其索引(无键)Javascript合并两个对象数组
- postgresql - 将每月固定值拆分为每天和国家(并排除某些值)
- javascript - 无法使用 NodeJS 从 postgres 获取数据到 DataTables