У меня есть некоторые проблемы с оператором НЕ в эластичном поиске, вот мой запрос
{
"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
}
}
}
}
Заранее спасибо,
попробуй это.
{
"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
}
}
}
}
Других решений пока нет …