elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', 'No handler for type [string] declared on field [texts]') elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', 'No handler for type [string] declared on field [texts]') elasticsearch elasticsearch

elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', 'No handler for type [string] declared on field [texts]')


this

'index': 'analyzed' OR 'index': 'not_analyzed'

is an older elasticsearch version mapping and not needed.

All you need to do is use 'text' for analyzed string fields and 'keyword' for not_analyzed text fields, like this:

es = Elasticsearch("localhost:9200")request_body = {    "settings": {        "number_of_shards": 5,        "number_of_replicas": 1    },    'mappings': {        'examplecase': {            'properties': {                'tbl_id': {'type': 'keyword'},                'texts': {'type': 'text'},            }        }    }}es.indices.create(index='example_index', body=request_body)

see reference in Elastic docs here: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html


See this. The index setting in your mapping is incorrectly configured. It is a mapping parameter and can be set to true or false only. You cannot set this within the properties parameter.