我在MongoDB数据库中有一系列文章,这些文章被索引到Elasticsearch中。 MongoDB中的每篇文章都包含一系列作者姓名,如:[' Michael Jordan',' ...']。然后将每篇文章编入索引。
在Es中,我有作者聚合的聚合,但我也想应用post_filter来过滤作者的结果。如何设计post_filter查询来处理这个问题?
Es Schema(可以更改):
{
authors: ['Michael Jordan', 'Kobe Bryant'],
authorsString: 'Michael Jordan;Kobe Bryant;'
}
这是应用post_filter之前的示例查询:
{
...
aggs: {
authors: {
terms: {
field: 'authorsArray.keyword',
},
},
},
post_filter: {},
}
如果我想找到至少有一位作者是" Michael Jordan"的文章,我如何使用post_filter这样做?
答案 0 :(得分:0)
如果没有分析作者字段,您可以随时按照这样的术语进行过滤
"post_filter": {
"term": { "authors": "Michael Jordan" }
}
答案 1 :(得分:0)
以下是在包含许多作者姓名的单个字符串中匹配作者姓名的原因。 (Es 5.6):
navigator.requestMediaKeySystemAccess