ES搜索特殊字符异常Encountered: <EOF> after

这篇具有很好参考价值的文章主要介绍了ES搜索特殊字符异常Encountered: <EOF> after。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

异常信息

org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1256)... 48 more↵	Caused by: org.elasticsearch.client.ResponseException: method 
 
[POST], host [http://xxxxxxurl], URI [/xxxxxxxx/xxxxxxxx/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&sear
ch_type=query_then_fetch&batched_reduce_size=512], status line [HTTP/1.1 400 Bad 
Request]{"error":{"root_cause":[{"type":"token_mgr_error","reason":"token_mgr_error: 
Lexical error at line 1, column 5.  Encountered: <EOF> after : 
\"\""}],"type":"search_phase_execution_exception","reason":"all shards 
failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"xxxxxxxx","node":"uIjzNu0rRJew8dZu-9nWwA","reason":
{"type":"query_shard_exception","reason":"Failed to parse query [as./]","index_uuid":"uuid","index":"xxxxxxxx","caused_by":{"type":"parse_exception","reason":"parse_exception: Cannot parse 'as./': Lexical error at line 1, column 5.  Encountered: <EOF> after : \"\"","caused_by":{"type":"token_mgr_error","reason":"token_mgr_error: Lexical error at line 1, column 5.  Encountered: <EOF> after : \"\""}}}}]},"status":400}↵		at org.elasticsearch.client.RestClient$1.completed(RestClient.java:540)↵		at 
org.elasticsearch.client.RestClient$1.completed(RestClient.java:529)↵		at 
org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:122)↵		at 
org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(Defaul
tClientExchangeHandlerImpl.java:181)↵		at 
org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:448)↵		at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:338)↵		at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265)↵		at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)↵		at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)↵		at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)↵		at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)↵		at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)↵		at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)↵		at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)↵		at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)↵		at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)... 1 more↵"

重点是这句

{“type”:“token_mgr_error”,“reason”:“token_mgr_error: Lexical error at line 1, column 5. Encountered: after : “””}

我们在查询的时候包含特殊字符:“”

所以为了避免搜索出错,我们需要对查询的字符串先进行转义文章来源地址https://www.toymoban.com/news/detail-591269.html

public static String escape(String s) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':'
                    || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~'
                    || c == '*' || c == '?' || c == '|' || c == '&' || c == '/') {
                sb.append('\\');
            }
            sb.append(c);
        }
        return sb.toString();
    }

到了这里,关于ES搜索特殊字符异常Encountered: <EOF> after的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES es Elasticsearch 十三 Java api 实现搜索 分页查询 复杂查询 过滤查询 ids查询 等

    目录 Java api 实现搜索 Pom.xml 建立链接 搜索全部记录 增加规则值查某些字段 搜索分页 全代码 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 复杂查询 bool查询 filter  bool 复杂查询增加过滤器查询 复杂擦好像加排序 日志 思路 参考 api 写法 写Java代码 请求条件构建层次

    2024年02月04日
    浏览(60)
  • ES查询must_not异常排查

    问题: \\\"error\\\": { \\\"root_cause\\\": [ { \\\"type\\\": \\\"x_content_parse_exception\\\", \\\"reason\\\": \\\"[71:9] [bool] failed to parse field [must_not]\\\" } ], \\\"type\\\": \\\"x_content_parse_exception\\\", \\\"reason\\\": \\\"[71:9] [bool] failed to parse field [must_not]\\\", \\\"caused_by\\\": { \\\"type\\\": \\\"illegal_state_exception\\\", \\\"reason\\\": \\\"expected value but got [START_ARRAY] 根据提示,发现查询

    2024年02月13日
    浏览(37)
  • SpringBoot 整合 ES 进行各种高级查询搜索

    上一章:《ElasticSearch集群的搭建》 如果你还未安装es的相关信息,请先移步至:《ElasticSearch安装》进行安装 如果您的SpringBoot项目还未整合es,请移步至:《SpringBoot整合ElasticSearch实现模糊查询,批量CRUD,排序,分页,高亮》 同时本文的操作中涉及到ElasticSearchRepository和Ela

    2023年04月15日
    浏览(48)
  • MyBatis处理LIKE查询时,如何将传值中包含下划线_和百分号%等特殊字符处理成普通字符而不是SQL的单字符通配符

    MySQL中,_和%在LIKE模糊匹配中有特殊的含义: 下划线 _ 在LIKE模糊匹配中表示匹配任意单个字符。 百分号 % 在LIKE模糊匹配中表示匹配任意多个字符(包括零个字符) 如果这种字符不经过处理,并且你的模糊查询sql语句书写如下,那么在你的前端页面搜索框中输入下划线或

    2024年01月23日
    浏览(52)
  • elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

    文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括: 1)准备Request对象 2)准备请求参数 3)发起请求 4)解析响应 我们以match_all查询为例 3.1.1.发起查询请求 代码解读: 第一步,创建 SearchRequest 对象,指定索引库名 第二步,利用 request.source() 构建DSL,DSL中可

    2024年02月07日
    浏览(53)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match

    官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 数据准备 官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。 2. m

    2023年04月08日
    浏览(52)
  • Es索引中时间字段是字符串Range查询的正确姿势

        由于之前搞了一个使用flink-cdc将mysql表中的数据同步到es的索引中,例子中数据库中的orders表中的order_date的字段类型是datetime类型,flink-sql建表orders、enriched_orders中的order_date 字段是TIMESTAMP(0)类型,同步到es的enriched_orders索引中的order_date的类型是:     数据被同步到e

    2024年02月11日
    浏览(58)
  • 第七章-分布式搜索引擎-ES:全文查询、分词查询、精确查询、地理坐标查询、组合查询(bool、funtion_score)以及RestApi

    DSL查询分类 全文查询、分词查询、非分词查询、地理坐标查询、组合查询 match_all 查询所有,不需要查询条件,固定写法_search 第一个hits就是命中的数据 ,total就是条数,第二个hits是source嘞   全文检索查询 我们不要整多个字段查询,参与的字段越多,查询速度越慢,如果有

    2024年01月16日
    浏览(81)
  • Elasticsearch实战(十七)---ES搜索如何使用In操作查询及如何Distinct去除重复数据

    Elasticsearch实战-ES搜索如何使用In操作查询filter过滤及如何Distinct去除重复数据 场景: ES搜索, 获取手机号是 19000001111 或者 19000003333 后者 19000004444 的人, 并且 性别是男, 且 年龄是[20-30]的人,这种查询用mysql 如何实现 ? 在mysql中会用in查询, 但是在ES中 我们实现就是 term

    2023年04月09日
    浏览(46)
  • es 中文前缀短语匹配(搜索智能补全) prefix查询和completion suggester两种方式

    需求 :es进行前缀匹配,用来进行智能补全 方式一:正常索引库类型,字段类型为text 过程 :es正常的prefix只能进行词语匹配,而中文的分词大部分按字分词,不按语义分词,所以无法搜索出正确的前缀匹配,而能进行短语匹配的match_phrase_prefix匹配,是正常按前几个词进行匹

    2024年01月24日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包