Elasticsearch не находит по не полному совпадению

301
02 декабря 2017, 10:30

Добрый день! Установил эластиксерч версия 5.6 Плагин морфологический https://github.com/imotov/elasticsearch-analysis-morphology Использую 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 ( ) ) )

Пожалуйста, подскажите, что я делаю не так

READ ALSO
Ошибка Notice: Undefined index: send in /var/www/html/file.php on line 2

Ошибка Notice: Undefined index: send in /var/www/html/file.php on line 2

В общем есть вот этот код:

312
Возможно ли сделать текст contenteditable без AJAX?

Возможно ли сделать текст contenteditable без AJAX?

Хочу дать пользователям возможность редактировать свои посты (при клике на иконку), но где бы я не искала, везде нужен AJAX, которого я ещё не знаю

271
Social Engine, отстутствует кнопка установки

Social Engine, отстутствует кнопка установки

Внизу страницы должна быть установка модулейУ меня её нет, у товарища когда он заходит она есть, чистка кэша не помогла, с чем связано? Тестировалось...

212
Управление возвращаемым результатом mysql

Управление возвращаемым результатом mysql

Возможно ли что либо сделать, для того чтобы по запросу в базу данных mysql в возвращаемом результате были не все столбцы? Точнее все кроме одного,...

192