Добрый день!
Установил эластиксерч версия 5.6
Плагин морфологический GitHub - imotov/elasticsearch-analysis-morphology: Morphological Analysis Plugin for ElasticSearch (No longer maintained)
Использую elasticsearch php библиотеку. Вот код
$client = \Elasticsearch\ClientBuilder::create()->build();
$params = ;
$params['index'] = ES_INDEX;//Удаляю индекс
if($client->indices()->exists($params)){
$response = $client->indices()->delete($params);
}//Создаю запись
if(! $client->indices()->exists($params)){$params = []; $params = [ 'index' => ES_INDEX, 'body' => [ 'settings' => [ 'analysis' => [ 'analyzer' => [ 'ru_analyzer' => [ 'type' => 'custom', 'tokenizer' => 'standard', 'filter' => ['lowercase', 'russian_morphology', 'english_morphology', 'snowball', 'ru_stemming'] ] ], 'filter' => [ 'ru_stemming' => [ 'type' => 'snowball', 'language' => 'Russian' ] ] ] ], 'mappings' => [ ES_INDEX => [ 'properties' => [ 'title' => [ 'type' => 'string', 'analyzer' => 'ru_analyzer', ] ] ] ] ] ]; $result = $client->indices()->create($params);
}
Далее индексирую данные
$params = []; $params['index'] = ES_INDEX; $params['type'] = ES_TYPE; $params['id'] = 1; $params['body']['title'] = 'Тестовая метка; $params['body']['location'] = [ 'lat' => 50.1001, 'lon' => 25.1002 ]; $result = $client->index($params);
Данные заносятся в эластик - если искать по ID - запись вернется, но если начать искать по тексту:
$params = ;
$params['index'] = ES_INDEX;
if ($client->indices()->exists($params)) {
$params['type'] = ES_TYPE;
$params['size'] = 10000;
$params['body']['sort'] = ['_score' => 'desc'];
$params['body']['query']['match']['title'] = 'тест';
$result = $client->search($params);
}
то ничего не находит
Array
(
[took] => 0
[timed_out] =>
[_shards] => Array
(
[total] => 5
[successful] => 5
[skipped] => 0
[failed] => 0
)[hits] => Array ( [total] => 0 [max_score] => [hits] => Array ( ) )
)
Пожалуйста, подскажите, что я делаю не так