Я работаю с Elasticsearch в люменах для простого поиска.
Я следовал учебному пособию по установке Elastic search от: https://medium.com/@basemkhirat_88244/laravel-lumen-flexible-elasticsearch-query-builder-inspired-from-eloquent-bb5221c65af8
И в моем controller.php
public function search() {
$users = \Basemkhirat\Elasticsearch\Facades\ES::index('user_index')->type("text")->body([
"query" => [
"bool" => [
"must" => [
[ "match" => [ "name" => "Leena Patel" ] ],
]
]
]
])->get();
dd($users);
}
И в моем routes.php
файле
$app->get('/search', 'Controller@search');
Мой es.php
файл конфигурации:
return [
'default' => env('ELASTIC_CONNECTION', 'default'),
'connections' => [
'default' => [
'servers' => [
[
"host" => env("ELASTIC_HOST", "127.0.0.1"),
"port" => env("ELASTIC_PORT", 9200),
'user' => env('ELASTIC_USER', ''),
'pass' => env('ELASTIC_PASS', ''),
'scheme' => env('ELASTIC_SCHEME', 'http'),
]
],
'index' => env('ELASTIC_INDEX', 'user_index'),
// Elasticsearch handlers
// 'handler' => new MyCustomHandler(),
]
],
'indices' => [
'user_index' => [
"aliases" => [
"user_index_alias"
],
'settings' => [
"number_of_shards" => 1,
"number_of_replicas" => 0,
],
'mappings' => [
'users_schema' => [
"properties" => [
'name' => [
'type' => 'text'
]
]
]
]
]
]
];
При запуске ссылки /search
в браузере он показывает массив результатов, такой как
Basemkhirat\Elasticsearch\Collection Object
(
[items:protected] => Array
(
)
[total] => 0
[max_score] =>
[took] => 1
[timed_out] =>
[scroll_id] =>
[shards] => stdClass Object
(
[total] => 1
[successful] => 1
[skipped] => 0
[failed] => 0
)
)
Мой вопрос Почему массив My Items пуст, хотя есть данные с именем = Leena Patel ?
Пожалуйста, помогите!Я изучаю ElasticSearch!
Редактировать:
Пользователи моей таблицы базы данных, которые содержат имя столбца с данными Leena Patel, ТАК Я хочу эту запись в результате моих элементов