一尘不染

Elasticsearch查询中的完全比对

elasticsearch

我想完全匹配 字段中的字符串":Feed:"message并回去一天拉所有这些记录。我拥有的json也似乎与普通单词匹配" feed "。我不确定我要去哪里。我是否需要向"constant_score"此查询添加JSON?我当前拥有的JSON如下所示:

{
    "query": {
        "bool": {
            "must": {
                "query_string": {
                    "fields": ["message"],
                    "query": "\\:Feed\\:"
                }
            },
            "must": {
                "range": {
                    "timestamp": {
                        "gte": "now-1d",
                        "lte": "now"
                    }
                }
            }
        }
    }
}

阅读 463

收藏
2020-06-22

共1个答案

一尘不染

如此处所述:查找精确值,因为在对字段进行索引时已对其进行了分析-
您无法完全匹配其标记(“:”)。每当令牌应可搜索时,映射应为“ not_analyzed”,并且数据需要重新索引。

如果您希望仅轻松匹配消息字段内的“:feed:”,则可能希望对不标记化“:”的分析器进行配音,以便您可以使用简单的“
match”查询来查询该字段而不是通配符。

2020-06-22