gpt4 book ai didi

带过滤器的 Elasticsearch bool 查询

转载 作者:行者123 更新时间:2023-12-02 22:50:20 25 4
gpt4 key购买 nike

我正在尝试编写一个包含 2 个部分的 Elasticsearch bool 查询。我想要“必须”的两个条件和“应该”的两个条件。问题是我只想获得“应该”的分数。我尝试了“过滤器”但没有成功。

更具体地说,我的查询在这里:

{
"query": {
"bool": {
"must": [
{
"match": {
"attr1": "on"
}
},
{
"match": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
],
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
],
"minimum_should_match": "10%"
}
}
}

更新这是失败的查询,我想找出错误!:

  {
"query": {
"bool": {
"filter": [
{
"term": {
"attr1": "on"
}
},
{
"term": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
],
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
],
"minimum_should_match": "10%"
}
}
}

如何按顺序重写这个查询:1) 获取 attr1 和 category 准确的所有行2) 然后用should查询这些结果

有什么想法吗?

最佳答案

您似乎没有使用 Elasticsearch 2.x。

对于 Elasticsearch 1.x,使用 FilteredQuery:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html

{
"filtered": {
"query": {
"bool": {
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
]
}
},
"filter": {
"bool": {
"must": [
{
"match": {
"attr1": "on"
}
},
{
"match": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
]
}
}
}
}

关于带过滤器的 Elasticsearch bool 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com