Версия Elasticsearch: 5.6.5
Я использую Elasticsearch Python API для создания индексов и документов массовой вставки:
EVENT = {
"mappings": {
"my_mapping": {
"properties": {
"event_time": {
"type": "date"
},
"some_field": {
"type": "keyword"
}
}
}
}
}
es = Elasticsearch("localhost")
es.indices.create(index="some_index", ignore=400, body=EVENT)
actions = [
{
'_index': index,
'_type': "my_mapping",
'_source': doc
} for doc in a_list_of_dictionaries]
helpers.bulk(es, actions, raise_on_error=True, request_timeout=15)
Однако приведенный выше код создал поле "some_field" в виде string
вместо keyword
, я также вижу строковое поле с именем "some_field.keyword", заполненное автоматически.
Как создать поле keyword
, чтобы я мог искать только точное совпадение всего слова?