我正在尝试计算terms or keywords
从指定查询中出现了多少次文档?
这是我的“内容”字段的映射
这是我的汇总查询:
"aggs" => [
"KEYWORDS" => [
"filters" => [
"filters" => [
"term1" => [
"term" => [
'content' => "isko"
]
],
"term2" => [
"term" => [
'content' => "manila"
]
]
]
]
]
]
这是响应:
我几乎接近期望的输出,但是当我想要 right 短语/关键字时,Elasticsearch无法识别它/
"aggs" => [
"KEYWORDS" => [
"filters" => [
"filters" => [
"term1" => [
"term" => [
'content' => "mayor isko moreno"
]
],
"term2" => [
"term" => [
'content' => "mayor vico sotto"
]
]
]
]
]
]
响应
这是否意味着Elasticsearch无法识别短语?
这是我的整个查询: My ES Query
答案 0 :(得分:0)
来自docs:
返回在提供的字段中包含确切术语的文档。
术语查询不解析查询字符串,它正在寻找完全匹配的词。 但是,您的字符串似乎已使用默认分析器进行索引(我假设您的单个单词查询按预期工作)。表示其内容松散地说是“作为一个单词”存储的。
您需要查询content.keyword
字段,而该字段没有进行分析即可获得整个短语的完全匹配。
答案 1 :(得分:0)
如果要使用准确的内容进行过滤,请尝试将过滤器应用于未分析的字段,这将达到您的目的。 下面是代码。
"aggs" => [
"KEYWORDS" => [
"filters" => [
"filters" => [
"term1" => [
"term" => [
'content.keyword' => "mayor isko moreno"
]
],
"term2" => [
"term" => [
'content.keyword' => "mayor vico sotto"
]
]
]
]
]
]