Как сделать правильный запрос для выбора по идентификатору, а затем обновить с помощью упругого поиска? - PullRequest
0 голосов
/ 28 ноября 2018

Я очень новичок в ES и пытаюсь выяснить некоторые вещи.

Я выполнил базовый запрос таким образом

GET _search
{
  "query": {
    "match_all": {}
  }
}

и получил это ...

{
  "took": 7,
  "timed_out": false,
  "_shards": {
    "total": 768,
    "successful": 768,
    "failed": 0
  },
  "hits": {
    "total": 456,
    "max_score": 1,
    "hits": [
      {
        "_index": "sometype_1",
        "_type": "sometype",
        "_id": "12312321312312",
        "_score": 1,
        "_source": {
          "readModel": {
            "id": "asdfqwerzcxv",
            "status": "active",
            "hidden": false
          },
          "model": {
            "id": "asdfqwerzcxv",
            "content": {
              "objectId": "421421312312",
              "message": "hello world",
              ..... //the rest of the object...

Итак, сейчас я хочу получить объект с идентификатором asdfqwerzcxv, и я сделал это:

GET _search
{
    "query": {
        "match" : {
            "id" :"asdfqwerzcxv"

        }
    }
}

Но, конечно, не работает ... Я также пытался сделатьвесь маршрут как:

GET _search
{
    "query": {
        "match" : {
            "_source" :{
              "readModel" : {
                 "id": "asdfqwerzcxv"      
              }
            }

        }
    }
}

Но не повезло ...

есть ли способ сделать это?кто-нибудь может мне помочь?

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

Вам необходимо использовать полное имя поля, попробуйте это:

GET _search
{
    "query": {
        "match" : {
            "readModel.id" :"asdfqwerzcxv"
                 ^
                 |
              add this
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...