Elasticsearch Не оператор не работает

У меня есть некоторые проблемы с оператором НЕ в эластичном поиске, вот мой запрос

{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "-et_tax:\"Agriculture\" -et_tax:\"Airports/Ports\""}
}
}
},
"aggs": {
"lawfirmcount": {
"cardinality": {
"field": "pd_lawfirmID",
"precision_threshold": 1250
}
}
}
}

Я создаю запрос, используя PHP & MySQL. Когда я использую вышеупомянутое, это показывало неправильные результаты, мне нужно исключить эти результаты в моих общих результатах, я ожидаю, что результат показывает все записи, но не в et_tax Столбец как Сельское хозяйство И Аэропорт / Порты. Так как же я могу использовать несколько операторов НЕ в моем запросе.

ОБНОВИТЬ :

Когда я передам один и тот же запрос И / ИЛИ оба покажут одинаковые результаты,

{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "-et_tax:\"Agriculture\" AND  -et_tax:\"Airports/Ports\""}
}
}
},
"aggs": {
"lawfirmcount": {
"cardinality": {
"field": "pd_lawfirmID",
"precision_threshold": 1250
}
}
}
}

Выше с оператором AND будет показано 1564 записи, а под запросом с оператором OR также показано то же количество.

{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "-et_tax:\"Agriculture\" OR  -et_tax:\"Airports/Ports\""}
}
}
},
"aggs": {
"lawfirmcount": {
"cardinality": {
"field": "pd_lawfirmID",
"precision_threshold": 1250
}
}
}
}

Заранее спасибо,

1

Решение

попробуй это.

{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "* AND NOT (et_tax:\"Agriculture\" OR  et_tax:\"Airports/Ports\")"}
}
}
},
"aggs": {
"lawfirmcount": {
"cardinality": {
"field": "pd_lawfirmID",
"precision_threshold": 1250
}
}
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]