我有一个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种变体都可以正常工作,但在舞台和生产服务器上却不行。舞台和生产服务器是同一台服务器,但索引不同
1条答案
按热度按时间bprjcwpo1#
回答晚了,我道歉。在没有人的情况下打开索引。更改为新索引并重新播种修复了此问题