Выделению результатов поиска тегами.
Комманда:
GET /megacorp/employee/_search
{ "query" : { "match_phrase" : { "about" : "rock climbing" } }, "highlight": { "fields" : { "about" : {} } } }
Выделение результатов поиска Elasticsearch в CURL:
$curl -XPOST 'localhost:9200/megacorp/employee/_search?pretty' -d ' { "query" : { "match_phrase" : { "about" : "rock climbing" } }, "highlight": { "fields" : { "about" : {} } } }'
Выделение результатов поиска Elasticsearch в PHP:
require '../vendor/autoload.php'; $client = Elasticsearch\ClientBuilder::create()->build(); $params = [ 'index' => 'megacorp', 'type' => 'employee', 'body' => [ 'query' => [ 'match' => [ "about" => "rock climbing" ], ], 'highlight' => [ "pre_tags" => "<em>", "post_tags" => "</em>", 'fields' => [ 'about' => new \stdClass() ] ], ] ]; try { $response = $client->search($params); } catch (Exception $e) { var_dump($e->getMessage()); } var_dump($response);
'about' => new \stdClass() - stdClass используется для правильного формирования JSON.
Выделение результатов поиска Elasticsearch в Yii2:
$params = [ 'match' => [ "about" => "rock climbing" ] ]; $model = Megacorp::find() ->query($params) ->highlight([ "pre_tags" => "<em>", "post_tags" => "</em>", 'fields' => [ 'about' => new \stdClass() ] ]) ->all(); var_dump($model);
Дополнительно
- Elasticsearch. Что такое Elasticsearch и как его установить
- Elasticsearch. Добавление данных (индексация)
- Elasticsearch. Извлечение данных
- Elasticsearch. Поиск, фильтры - Query DSL
- Elasticsearch. Полнотекстовый поиск
- Elasticsearch. Выделение результата поиска
- Elasticsearch. Обновление, удаление документа
Подробная документация https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html
Комментарии
Комментарии отсутствуют, Вы можете быть первым