#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