#jquery #elasticsearch
#jquery #elasticsearch
Вопрос:
я работаю над эластичным поиском, я хочу выполнить запрос в документе о том, что «alarmStatus» НЕ РАВЕН 0, я выполнил следующий код
»’
{
"query": {
"bool": {
"must_not":{
"term": {
"alarmStatus": 0
}
},
"filter": {
"match": {
"type": "meterdata"
}
}
}
}
}
»’
и он не выполняет функцию not equal, любая помощь, заранее спасибо
вот результат запроса, который я получил (я показываю только один, поскольку у меня есть 8k ..)
"hits": {
"total": {
"value": 8067,
"relation": "eq"
},
"max_score": 0.0,
"hits": [
{
"_index": "test",
"_type": "meter",
"_id": "7Hiii3QBSliyJ__J2921",
"_score": 0.0,
"_source": {
"header": {
"meterId": 12345,
"manufId": 2367,
"meterType": 7,
"swVersion": 4,
"dataCtrl": 123,
"accessNum": 179,
"alarmStatus": 0,
"dataConfig": 0
},
}
},
Комментарии:
1. Запрос выглядит корректно. Можете ли вы поделиться своим сопоставлением индексов и образцом документа, который вы хотите сопоставить?
2. извините, что такое сопоставление индексов? я новичок в ES,…. @Val
Ответ №1:
Вы можете использовать GET mapping API, т.е. GET /{{index-name}}/_mapping
для получения определения сопоставления для индекса.
Сопоставление — это процесс определения того, как документ и содержащиеся в нем поля хранятся и индексируются. Поля и типы сопоставления не нужно определять перед использованием. Используя динамическое сопоставление (как в вашем случае), новые имена полей будут добавлены автоматически, просто путем индексации документа.
Добавление рабочего примера с индексными данными, поисковым запросом и результатом поиска
Индексировать данные:
{
"header": {
"meterId": 12345,
"manufId": 2367,
"meterType": 7,
"swVersion": 4,
"dataCtrl": 123,
"accessNum": 179,
"alarmStatus": 0,
"dataConfig": 0
}
}
{
"header": {
"meterId": 12345,
"manufId": 2367,
"meterType": 7,
"swVersion": 4,
"dataCtrl": 123,
"accessNum": 179,
"alarmStatus": 1,
"dataConfig": 0
}
}
Поисковый запрос:
{
"query": {
"bool": {
"must_not": {
"term": {
"header.alarmStatus": 0
}
}
}
}
}
Результат поиска:
"hits": [
{
"_index": "64763634",
"_type": "_doc",
"_id": "2",
"_score": 0.0,
"_source": {
"header": {
"meterId": 12345,
"manufId": 2367,
"meterType": 7,
"swVersion": 4,
"dataCtrl": 123,
"accessNum": 179,
"alarmStatus": 1,
"dataConfig": 0
}
}
}
]
Комментарии:
1. Что он делал не так?