laravel 在生产环境中忽略ElasticSearchmust_not

y3bcpkx1  于 2023-03-04  发布在  ElasticSearch
关注(0)|答案(1)|浏览(171)

我有一个elasticsearch查询,其中需要排除stock_code为L1的某些产品。
当我尝试这个查询时,它没有排除文章

{
    "bool": {
        "must": [],
        "must_not": [{
            "term": {
                "stock_code": {
                    "value": "L1"
                }
            }
        }]
    }
}

我尝试了不同的变体

{
    "bool": {
        "must": [],
        "must_not": [],
        "filter": {
            "bool": {
                "must_not": [{
                    "term": {
                        "stock_code": {
                            "value": "L1"
                        }
                    }
                }]
            }
        }
    }
}

以及

{
    "bool": {
        "must": [{
            "bool": {
                "must_not": [{
                    "term": {
                        "stock_code": {
                            "value": "L1"
                        }
                    }
                }]
            }
        }],
        "must_not": []
    }
}

我们使用ElasticSearch7.16.2
在产品索引的Map下方

{
    "settings": {
        "index": {
            "number_of_shards": 3,
            "number_of_replicas": 2
        },
        "mappings": {
            "properties": {
                ....
                "stock_code": {
                    "type": "keyword"
                }
                ....
            }
        }
    }
}

在我的本地笔记本电脑上,这3种变体都可以正常工作,但在舞台和生产服务器上却不行。舞台和生产服务器是同一台服务器,但索引不同

bprjcwpo

bprjcwpo1#

回答晚了,我道歉。在没有人的情况下打开索引。更改为新索引并重新播种修复了此问题

相关问题