Elasticsearch.Net и NEST для поиска строки и массива тегов - PullRequest
0 голосов
/ 27 мая 2018

Имея такие данные: { "id" : 22, "name" : "test", "tagIds" : [ 2, 35, 56, 59 ] }, как можно искать теги name и ?

, используя следующий запрос:

{
  "from": 0,
  "size": 100,  
  "query": {
    "terms": {
      "tagIds": [
        35
      ]
    },  
    "multi_match": {
      "query": "test",
      "fields": [
        "name"
      ]
    }
  }
}

Получает это исключение при разборе: [terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]

Как правильно написать это в беглом гнезде?

1 Ответ

0 голосов
/ 27 мая 2018

Вам нужно использовать bool query для объединения нескольких запросов.Следовательно, ваш запрос должен выглядеть следующим образом:

{   
    "from": 0,  
    "size": 100,     
    "query": {
        "bool": {
            "must": [
                {
                    "terms": {
                        "tagIds": [
                            35
                        ]
                    }
                },
                {
                    "multi_match": {
                        "query": "test",
                        "fields": [
                            "name"
                        ]
                    }
                }
            ]
        }
    }
}    
...