Доброе утро, В моем коде я не могу искать данные, содержащие отдельные слова. Если я ищу по одному слову все хорошо. Я думаю, проблема в картографии. Я использую почтальона. Когда я кладу в URL http://192.168.1.153:9200/sport_scouts/video/_mapping
и метод использования GET я получаю:Картирование в elasticsearch
{
"sport_scouts": {
"mappings": {
"video": {
"properties": {
"hashtag": {
"type": "string"
},
"id": {
"type": "long"
},
"sharing_link": {
"type": "string"
},
"source": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"user_id": {
"type": "long"
},
"video_preview": {
"type": "string"
}
}
}
}
}
}
Все хорошее название имеют тип строки, но если искать на двух или более слов, я получаю пустой массивны. Мой код в черту:
public function search($data) {
$this->client();
$params['body']['query']['filtered']['filter']['or'][]['term']['title'] = $data;
$search = $this->client->search($params)['hits']['hits'];
dump($search);
}
Затем я называю это в своем контроллере. Можете ли вы помочь мне с этой проблемой?
В чем проблема, с которой вы сталкиваетесь? – Andrej
Эластик не выполняет поиск по двум или более словам, он возвращает пустой массивный, эластичный поиск только на одном слове. – first