private function elasticsearch_connector_views_keyword_handler_filter::getFulltextFields in Elasticsearch Connector 7
Same name and namespace in other branches
- 7.5 modules/elasticsearch_connector_views/handlers/elasticsearch_connector_views_keyword_handler_filter.inc \elasticsearch_connector_views_keyword_handler_filter::getFulltextFields()
- 7.2 modules/elasticsearch_connector_views/handlers/elasticsearch_connector_views_keyword_handler_filter.inc \elasticsearch_connector_views_keyword_handler_filter::getFulltextFields()
Choose fulltext fields from ElasticSearch mapping if they are type string and are analyzed (there is no index => not_analyzed in the mapping)
Return value
array fields
1 call to elasticsearch_connector_views_keyword_handler_filter::getFulltextFields()
- elasticsearch_connector_views_keyword_handler_filter::options_form in modules/
elasticsearch_connector_views/ handlers/ elasticsearch_connector_views_keyword_handler_filter.inc - Provide the basic form which calls through to subforms.
File
- modules/
elasticsearch_connector_views/ handlers/ elasticsearch_connector_views_keyword_handler_filter.inc, line 76 - Fulltext keyword search.
Class
- elasticsearch_connector_views_keyword_handler_filter
- @file Fulltext keyword search.
Code
private function getFulltextFields() {
$base_table_parts = explode("__", $this->table);
$cluster_id = $base_table_parts[1];
$index = $base_table_parts[2];
$type = $base_table_parts[3];
$client = elasticsearch_connector_get_client_by_id($cluster_id);
$params = array(
'index' => $index,
'type' => $type,
);
$mapping = $client
->indices()
->getMapping($params);
$fulltext_fields = array_keys(array_filter($mapping[$index]['mappings'][$type]['properties'], function ($v) {
return $v['type'] == 'string' && (!isset($v['index']) || $v['index'] != 'not_analyzed');
}));
return array_combine($fulltext_fields, $fulltext_fields);
}