首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为字符串输入值的Elasticsearch 7 number_format_exception

作为字符串输入值的Elasticsearch 7 number_format_exception
EN

Stack Overflow用户
提问于 2020-10-19 10:20:04
回答 1查看 1.5K关注 0票数 1

我在索引中有字段,映射如下:

代码语言:javascript
复制
 "sequence_number" : {
          "type" : "long",
          "copy_to" : [
            "_custom_all"
          ]
        }

并将搜索查询用作

代码语言:javascript
复制
POST /my_index/_search
{
  "query": {
    "term": {
      "sequence_number": {
        "value": "we"
      }
    }
  }
}

我收到了错误消息:

代码语言:javascript
复制
,"index_uuid":"FTAW8qoYTPeTj-cbC5iTRw","index":"my_index","caused_by":{"type":"number_format_exception","reason":"For input string: \"we\""}}}]},"status":400}
        at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:260) ~[elasticsearch-rest-client-7.1.1.jar:7.1.1]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:238) ~[elasticsearch-rest-client-7.1.1.jar:7.1.1]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:212) ~[elasticsearch-rest-client-7.1.1.jar:7.1.1]
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1433) ~[elasticsearch-rest-high-level-client-7.1.1.jar:7.1.1]
        at

我怎样才能忽略number_format_exception错误,这样查询就不会返回任何内容,或者特别忽略这个过滤器--这两者都是可以接受的。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 10:35:10

您正在寻找的内容是不可能的,理想情况下,您应该在数字字段上启用相干,这样索引就不会包含脏数据。

最好的解决方案是,在生成Elasticsearch查询的应用程序中(如果搜索的是数字字段,则应该检查NumberFormatExcepton,因为索引一开始不包含脏数据,如果应用程序中有异常,则拒绝查询)。

编辑:另一种有趣的方法是在插入ES之前验证数据,使用@prakash建议的验证API,唯一的问题是它会添加另一个网络调用,但是如果应用程序对延迟不敏感,它可以用作解决方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64425389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档