gpt4 book ai didi

elasticsearch - 在Elasticsearch查询中转义特殊字符

转载 作者:行者123 更新时间:2023-12-03 00:11:52 44 4
gpt4 key购买 nike

我的问题很简单,我不能在搜索查询中使用@。最后,我发现我可以使用反斜杠转义特殊字符。

GET index/_search
{
"size": 20,
"query": {
"query_string": {
"query": "\@as",
"analyzer": "keyword"
}
}
}

但是当我尝试这样做时,出现以下错误 Unrecognized character escape '@' (code 64)\n at。当我尝试不使用@符号时,我得到的结果中没有@符号,例如
  • 像往常一样错过
  • As。 GUI
  • 好像
    等等。有谁能建议我如何才能按照我的期望执行上一个查询?

  • 我在用
  • Elasticsearch 2.4.1
  • Ubuntu 14.04
  • Kibana 4.6.1
  • 最佳答案

    您收到错误消息是因为不需要转义'@'字符。
    "query": "@as" 应该可以。
    您还应该检查您的映射,如果您的字段未标记为not_analyzed(或没有keyword分析器),则不会看到任何搜索结果-标准分析器在为文档建立索引时会删除“@”之类的字符。
    更新query_string默认情况下使用_all字段,因此您必须以类似于以下示例的方式配置此字段:

    PUT index 
    {
    "mappings":{
    "book":{
    "_all":{
    "type":"string",
    "index":"analyzed",
    "analyzer":"whitespace"
    },
    "properties":{
    "name":{
    "type":"string",
    "index":"not_analyzed"
    }
    }
    }
    }
    }

    PUT /index/book/1
    {
    "name" : "@foo bar"
    }

    GET index/_search
    {
    "size": 20,
    "query": {
    "query_string": {
    "query": "@foo",
    "analyzer": "keyword"
    }
    }
    }

    关于elasticsearch - 在Elasticsearch查询中转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069697/

    44 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com