[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Elasticsearch - не получается создать анализатор
Diakon
Добрый день!
Только начал работать с эластиком. Проблема в том, что поиск не возвращает все варианты. Я так понимаю дело в том, что у меня не настроен анализатор russian (https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html#russian- analyzer)

Но у меня не получается его настроить.. Прошу помочь тем, кто в курсе как это сделать. Вот код создания индекса и наполнения его данными для поиска из БД:


require 'vendor/autoload.php';
$client = \Elasticsearch\ClientBuilder::create()->setHosts([ES_HOST])->build();

$params = [];
$params['index'] = ES_INDEX;

//Удаляю индекс
if($client->indices()->exists($params)){

$response = $client->indices()->delete($params);

}
//Создаю запись
if(! $client->indices()->exists($params)){

$index = $client->index([
'index' => ES_INDEX,
'type' => ES_TYPE,
'id' => ES_ID,
'body' => []
]);


}

$sql = "SELECT id, `name` FROM salons_services";
$result = $conn->query($sql);

//Заполняю индекс значениями для поиска
foreach ($result as $row) {

$params['body'][] = [
'index' => [
'_index' => ES_INDEX,
'_type' => ES_TYPE,
]
];


$params['body'][] = [
'tableid' => $row['id'],
'tablename' => trim($row['name'])
];


}

$responses = $client->bulk($params);



А потом этой функцией ищу IDники по слову


function searchES($word) {

$client = \Elasticsearch\ClientBuilder::create()->setHosts([ES_HOST])->build();

$IDs = [];
$params = [];
$params['index'] = ES_INDEX;

if ($client->indices()->exists($params)) {

$params['type'] = ES_TYPE;
$params['body']['query']['match']['tablename'] = trim($word);

$result = $client->search($params);

if ($result['hits']['total'] > 0) {

$result = $result['hits']['hits'];

foreach ($result as $val) {

$k = $val['_source']['tableid'];
$IDs[$k] = $k;

}

}

}


return $IDs;
}



Вот как я и сказал - возвращаются не все результаты... Я думаю, что надо подключить анализатор. Кто может подсказать, как это сделать? Заранее спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.