Получение всех значений из 2 столбцов

#django #elasticsearch #kibana #elasticsearch-dsl #elasticsearch-query

#django #elasticsearch #кибана #elasticsearch-dsl #elasticsearch-запрос

Вопрос:

Я ищу соответствующий запрос elasticsearch для,

 SELECT col1,col2 FROM myTable WHERE col1="value1" AND col2 = "value2"
  

например:
Это мое отображение,

 {
    "mapping": {
        "doc": {
            "properties": {
                "book": {
                    "properties": {
                        "name": {
                            "type": "text"
                        },
                        "price": {
                            "type": "integer"
                        },
                        "booktype": {
                            "properties": {
                                "booktype": {
                                    "type": "text"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
  

Я пытаюсь написать запрос, который выдаст мне price и name который имеет booktype=Fiction

Ответ №1:

Попробуйте это:

 GET myTable/_search
{
  "size": 1000,
  "_source": [
    "price",
    "name"
  ],
  "query": {
    "bool": {
      "must": [
        {
           "match": {
             "booktype.booktype": "Fiction"
           }
        }
      ]
    }
  }
}
  

Примечание: возможно, вам потребуется адаптировать «размер» в соответствии с вашими потребностями.

Комментарии:

1. Не работает с foreignkey, в моем случае col1 равен index.columns.col1 « _source»: { «index»: { «columns»: { «col1»: «Product Manager» }, «open_positions»: 2 } ` `

2. Что вы подразумеваете под «foreignkey»?

3. Этот запрос работает хорошо, если я беру столбец, в котором есть inter, float и т.д. (Кроме String). Но сбой со строкой даже после того, как соответствующее поле доступно для поиска и агрегирования

4. Обновите свой вопрос образцом документа, которому вы хотите соответствовать, и вашим сопоставлением индексов

5. Я обновил свой ответ. Вам нужно выполнить вложенный запрос, поскольку tag он вложенный.