Kibana фильтр для нескольких ключевых слов - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужна помощь с множественной фильтрацией данных. Например, для примера JSON ниже, какой запрос будет работать лучше всего. Если мне нужно просто найти все поля как «Apple» и фрукты «Y»

1)

{
  "_index": "abc",
  "_type": "123",
  {
  "field" : "Apple"
  "fruit" : "Y"
  },
  {
  "field" : "Tomato"
  "fruit"   : "N"
  },
 {
  "field" : "Mango"
  "fruit"   : "Y"
}

2)

{
  "_index": "abc",
  "_type": "123",
  {
  "field" : "Apple"
  "fruit" : "N"
  },
  {
  "field" : "Tomato"
  "fruit"   : "Y"
  },
 {
  "field" : "Mango"
  "fruit"   : "Y"
 }

1 Ответ

0 голосов
/ 14 сентября 2018

Возможно, вы хотели бы взглянуть на ES документы поиска и ES фильтры

Надеюсь, что это поможет вам получить представление о выполнении поиска:

{
    "bool": {
        "must":     { "match": { "tweet": "elasticsearch" }},
        "must_not": { "match": { "name":  "mary" }},
        "should":   { "match": { "tweet": "full text" }},
        "filter":   { "range": { "age" : { "gt" : 30 }} }
    }
}

Для точного соответствия вы можете использовать 'термин' из документации ES как:

{
    "bool": {
        "must": [ { "term": { "field": "Apple" }},
                  { "term": { "fruit":  "Y" }} ]
    }
}

В Кибане использовать:

GET index_name/_search
{
"query": { 
         # your search query here
         }
}

Возможно, это не таклучшее решение, но надеюсь, что это поможет вам.

ОБНОВЛЕНО

Попробуйте на ES демо

TEST

Пример кода для запуска:

GET kibana_sample_data_flights/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "OriginWeather": "Sunny"
        }},
        {"match": {
          "Cancelled": false
        }}
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...