我的文件看起来像:
{
"tags" => [
"tag1",
"tag2",
],
"name" => "Example 1"
}
{
"tags" => [
"tag1",
"tag3",
"tag4"
],
"name" => "Example 2"
}
我现在想要的是进行术语搜索,其中给定数组可能看起来像:
[tag1, tag3]
预期命中应在哪里:
{
"tags" => [
"tag1",
"tag3",
"tag4"
],
"name" => "Example 2"
}
但是,当我执行类似的查询时:
GET _search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"terms": {
"tags": [
"tag1",
"tag3"
]
}
}
]
}
}
}
}
}
由于示例1和示例2都包含tag1或tag3,因此获得了“示例1”和“示例2”作为匹配。通过查看文档中的术语,我发现术语实际上是一个包含查询。
在这种情况下,如何在使用tag1和tag3查询时确保示例2是唯一匹配项?
您需要通过添加到过滤器来将
执行模式 设置为 “和” ,以便所有术语都必须包含在文档中才能被视为匹配项"execution": "and"``terms
GET _search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"terms": {
"tags": [
"tag1",
"tag3"
],
"execution": "and"
}
}
}
}
}
这实际上bool must
与使用所有术语的合集构建过滤器相同,但形式更紧凑。
问题内容: 我有一个像 如何检查此数组以查看Magenic是否存在?除非必须,否则我不想循环播放。我正在处理几千条记录。 更新 由于这是一个受欢迎的帖子,所以我想分享一些新发现。看来@CAFxX已经分享了!我应该更经常阅读这些内容。 借助 ECMAScript 2015 ,使用新的箭头功能甚至更加简单: 问题答案: 2018 edit :这个答案来自2011,当时浏览器没有广泛支持数组过滤方法和箭
null null null 我只是不知道如何将两者结合起来,这样小数点后才是强制性的。 我如何解决这个问题?
我正在尝试使用DynamoDB JavaScript shell创建一个简单的表,我得到了这个异常: 下面是我试图创建的表: 但是,如果我将第二个属性添加到KeySchema,它就可以正常工作。a工作台下方: 我不想将范围添加到密钥架构。知道怎么修吗?
我在laravel上有一个注册和登录系统,没有电子邮件验证。今天,我想使用以下指南添加电子邮件验证:https://mailtrap.io/blog/laravel-email-verification/完成所有操作后,我尝试注册一个用户,但出现了错误“传递到App\Http\Controllers\Auth\RegisterController::validator()的参数1必须是在第32行的
这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小。 输出如下: (2, 3) 示例 2 # 这会调整数组大小 import numpy as np a = np.array([[1,2,3],[4,5,6]]) a.shape = (3,2) 输出如下: [[1, 2] [3, 4] [5, 6]] NumPy 也提供了reshape函数来调整数组大小。 import n
问题内容: 我有一套文件,例如 如标题中所述:是否可以使用Nest过滤包含给定标签的所有文档? 例如,上面的记录将匹配[‘c’,’d’] 还是应该手动构建多个“ OR”? 问题答案: 编辑:下面的位集可能是有趣的读物,但答案本身有点过时。 其中一些功能在2.x中有所变化。Slawek还在另一个答案中指出,在这种情况下,查询是使搜索干燥的一种简便方法。最后重构为当前最佳实践。—nz 您可能需要带有子