как я могу использовать этот запрос mysql в эластичном поиске

#mysql #elasticsearch

#mysql #elasticsearch

Вопрос:

на самом деле я хочу, чтобы эти записи из моей базы данных, где описание пустое, находились под запросом mysql для моего результата и каким должен быть запрос в elasticsearch для получения того же результата?

ВЫБЕРИТЕ * Из продуктов, ГДЕ описание!= «;

Ответ №1:

Запрос эластичного поиска выглядит следующим образом

 POST http://localhost:9200/<index>/<indextype>/_search
{
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "description": ""
        }
      }
    }
  }
}
  

Все еще это не работает, проверьте, что ваше отображение должно быть таким.

 PUT http://localhost:9200/<index>/<indextype>/_mapping
{
  "products": {
    "properties": {
      "description": {
        "type": "string",
        "index": "not_analyzed"
      }
    }
  }
}
  

Если вы хотите получить результат с описанием! = «, тогда используйте приведенный ниже запрос.

Отсутствует фильтр в разделе «Не должен» Bool-фильтра. Он вернет документы только там, где это поле существует, и если вы установите для свойства «null_value» значение true, значения, которые явно не равны null.

 {
  "query": {
    "filtered": {
      "filter": {
        "bool":{
          "must":{},
          "should":{},
          "must_not":{
             "missing":{
                "field":"description",
                "existence":true,
                "null_value":true
                }
            }
        }
      }
    }
  }
}
  

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

1. Спасибо vinod, индекс должен быть «not_analyzed»? и если я хочу результат с описанием! = » тогда каким должен быть запрос в elasticsearch?

2. я обновил свой ответ на ваш вопрос. Пожалуйста, проверьте.

3. проверено с помощью vinod