Выделению результатов поиска тегами.
Комманда:
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
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
Комментарии отсутствуют, Вы можете быть первым