首页 > 解决方案 > Elasticsearch 不能识别词组?

问题描述

terms or keywords我正在尝试计算从我指定的查询中发生了多少次或多少个文档

这是我的“内容”字段的映射

内容字段映射

这是我的聚合查询:

"aggs" => [
    "KEYWORDS" => [
        "filters" => [
            "filters" => [
                "term1" => [
                    "term" => [
                        'content' => "isko"
                    ]
                ],
                "term2" => [
                    "term" => [
                        'content' => "manila"
                    ]
                ]
            ]
        ]
    ]
]

这是回应:

输出 1

我几乎接近我想要的输出,但是当我想要正确的短语/关键字时,Elasticsearch 无法识别它

"aggs" => [
    "KEYWORDS" => [
        "filters" => [
            "filters" => [
                "term1" => [
                    "term" => [
                        'content' => "mayor isko moreno"
                    ]
                ],
                "term2" => [
                    "term" => [
                        'content' => "mayor vico sotto"
                    ]
                ]
            ]
        ]
    ]
]

回复

输出 2

这是否意味着 Elasticsearch 无法识别短语?

这是我的整个查询: 我的 ES 查询

标签: elasticsearch

解决方案


文档

返回在提供的字段中包含确切术语的文档。

术语查询不解析查询字符串,它正在寻找完全匹配。但是,您的字符串似乎已使用默认分析器进行了索引(我假设您的单个单词查询按预期工作)。意思是他们的内容松散地存储为“单个单词”。

您需要查询未分析的content.keyword字段以获得整个短语的完全匹配。


推荐阅读