public function SearchApiElasticsearchService::indexItems in Search API Elasticsearch 7.2
@inheritdoc
Overrides SearchApiServiceInterface::indexItems
File
- includes/
SearchApiElasticsearchService.inc, line 20 - Provides Elasticsearch service for Search API.
Class
- SearchApiElasticsearchService
- @file Provides Elasticsearch service for Search API.
Code
public function indexItems(SearchApiIndex $index, array $items) {
$elasticsearch_index = new SearchApiElasticsearchIndex($index, $this);
$documents = [];
foreach ($items as $id => $fields) {
$data = array(
'id' => $id,
);
foreach ($fields as $field_id => $field_data) {
if (isset($field_data['value']) && is_array($field_data['value'])) {
$data[$field_id] = array();
foreach ($field_data['value'] as $token) {
$value = is_array($token) && isset($token['value']) ? $token['value'] : $token;
if ($field_data['type'] === 'date') {
$value = date(SEARCH_API_ELASTICSEARCH_DATE_FORMAT, $value);
}
$data[$field_id][] = $value;
}
}
else {
$value = $field_data['value'];
if ($field_data['type'] === 'date') {
$value = date(SEARCH_API_ELASTICSEARCH_DATE_FORMAT, $value);
}
$data[$field_id][] = $value;
}
}
$documents[] = new Document($id, $data, $index->machine_name);
}
return $elasticsearch_index
->indexItems($documents);
}