当前位置: 首页 > 面试题库 >

elasticsearch.exceptions.RequestError:RequestError(400,'mapper_parsing_exception','在字段[文本]上声明的[string]类型没有处理程序')

南门鸿振
2023-03-14
问题内容

我使用elasticsearch python api创建映射,但是出现了一些错误:

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

它显示了elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', 'No handler for type [string] declared on field [texts]'),并且我找到了一些他们说的解决方案:使用text而不是string在字段类型中使用,但是它也出错了:elasticsearch.exceptions.RequestError: RequestError(400, 'mapper_parsing_exception', 'Failed to parse mapping [examplecase]: Could not convert [texts.index] to boolean'). The elasticsearch version iselasticsearch-6.5.4. How can I deal with it?


问题答案:

这个

‘index’:’analyzed’或’index’:’not_analyzed’

是较旧的Elasticsearch版本映射,不需要。

您需要做的就是对分析的字符串字段使用“ text ”,对未经分析的文本字段使用“ keyword ”,如下所示:

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)

请在此处查看Elastic
docs中的参考:https
:
//www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html




 类似资料:
  • 问题内容: 当声明为时,Elasticsearch 6.0将显示此错误。 问题答案: Elasticsearch删除了该类型,现在正在使用。所以你的代码应该是这样的

  • 谷歌了很多没有任何运气所以,任何帮助都很感激。 更新1: ES版本:2.3.3(我相信是最新版本)

  • 问题是如何使用对象类型发送Header,而不是HTTPClient声明中提供的HttpHeaders。 我在VS代码中得到的错误信息如下所示 “{headers:GetLoggedInUserHeaderRequestParam;}”类型的[ts]参数不可分配给“{headers?:HttpHeaders{[Header:string]:string string[];};};”类型“的参数;”观

  • Section Contents 基本内容 具体细节

  • 问题内容: 我有一个类A,其中包含一些私有字段,而同一类扩展了另一个类B,它也具有一些在A类中的私有字段。 B班有一些私人课 现在,当我尝试从上述类A创建JSON字符串时,出现以下异常: 如何解决这个问题? 由于它们是私有字段,所以我猜创建json字符串时应该没有任何问题,但我不确定。 我创建如下的json字符串: 这里obj是A类的对象 问题答案: 由于它们是私有字段,因此在创建json字符串时

  • 我正在为我的申请写测试。我已经为我的gradle项目安装了jacoco插件。在做了测试覆盖率报告后,我看到红色的“公共类MyClass”,这意味着它没有被覆盖。 那么,我如何修复这个问题,并将其覆盖(用绿色着色)?