elasticsearch Elasticsearch无法解析查询无法解析';或';,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch无法解析查询无法解析';或';,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch无法解析查询无法解析';或';

elasticsearch Elasticsearch无法解析查询无法解析';或';,elasticsearch,elasticsearch,我正在尝试从索引中搜索文档中的“或”。 这是我键入的查询 GET index_name/_search { "query": { "bool": { "filter": [ { "query_string": { "query": "OR word1", "fi

我正在尝试从索引中搜索文档中的“或”。
这是我键入的查询

GET index_name/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "query_string": {
            "query": "OR word1",
            "fields": [
              "field1"
            ]
          }
        }
      ]
    }
  }
}
我得到以下错误

{
  "error": {
    "root_cause": [
      {
        "type": "query_shard_exception",
        "reason": "Failed to parse query [OR word1]",
        "index_uuid": "Brju2MNeQ5m7sI02Q2Y4gw",
        "index": "index_name"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "index_name",
        "node": "C5Suw-gaR7eehoH0WNGw1A",
        "reason": {
          "type": "query_shard_exception",
          "reason": "Failed to parse query [OR word1]",
          "index_uuid": "Brju2MNeQ5m7sI02Q2Y4gw",
          "index": "index_name",
          "caused_by": {
            "type": "parse_exception",
            "reason": "Cannot parse 'OR word1': Encountered \" <OR> \"OR \"\" at line 1, column 0.\nWas expecting one of:\n    <NOT> ...\n    \"+\" ...\n    \"-\" ...\n    <BAREOPER> ...\n    \"(\" ...\n    \"*\" ...\n    <QUOTED> ...\n    <TERM> ...\n    <PREFIXTERM> ...\n    <WILDTERM> ...\n    <REGEXPTERM> ...\n    \"[\" ...\n    \"{\" ...\n    <NUMBER> ...\n    <TERM> ...\n    ",
            "caused_by": {
              "type": "parse_exception",
              "reason": "Encountered \" <OR> \"OR \"\" at line 1, column 0.\nWas expecting one of:\n    <NOT> ...\n    \"+\" ...\n    \"-\" ...\n    <BAREOPER> ...\n    \"(\" ...\n    \"*\" ...\n    <QUOTED> ...\n    <TERM> ...\n    <PREFIXTERM> ...\n    <WILDTERM> ...\n    <REGEXPTERM> ...\n    \"[\" ...\n    \"{\" ...\n    <NUMBER> ...\n    <TERM> ...\n    "
            }
          }
        }
      }
    ]
  },
  "status": 400
}
{
“错误”:{
“根本原因”:[
{
“类型”:“查询切分异常”,
“原因”:“未能分析查询[或单词1]”,
“索引”:“Brju2MNeQ5m7sI02Q2Y4gw”,
“索引”:“索引名称”
}
],
“类型”:“搜索\阶段\执行\异常”,
“原因”:“所有碎片均失败”,
“阶段”:“查询”,
“分组”:正确,
“失败的\u碎片”:[
{
“碎片”:0,
“索引”:“索引名称”,
“节点”:“C5Suw-gaR7eehoH0WNGw1A”,
“理由”:{
“类型”:“查询切分异常”,
“原因”:“未能分析查询[或单词1]”,
“索引”:“Brju2MNeQ5m7sI02Q2Y4gw”,
“索引”:“索引名称”,
“原因”:{
“类型”:“解析异常”,
“原因”:“无法解析”或“字词1”:在第1行第0列遇到\“\”或\“\”。\n应为:\n…\n \“+\”…\n \“-\”…\n…\n\”(\“…”\n…\n…\n…\n…\n…\n…\n…\n \“[\”..\n \“{\”..\n…\n…\n”,
“原因”:{
“类型”:“解析异常”,
“原因”:“在第1行第0列遇到\“\”或\“\”。\n应为:\n…\n \“+\”..\n \“-\”..\n…\n\”(\”..\n…\n…\n…\n…\n…\n \“[\”..\n \“{\”..\n…\n…\n”
}
}
}
}
]
},
“地位”:400
}

为什么这是一个错误?克服这个错误的正确方法是什么?如果我从查询中删除“或”这个词,它可以正常工作,但是当我保留它时,它会给我这个错误如果我很好地理解了你的问题,我创建了一个索引,并接收了两个文档。我尝试使用
转义
字符=
\

以下是我摄取的数据:

“字段1”:“单词1”

“字段1”:“或单词1”

然后,我对您的查询做了一个小修改:

{
    "query": {
        "bool": {
        "filter": [
            {
                "query_string": {
                    "query": "word1 \\OR",
                    "fields": ["field1"]
                }
            }
            ]
        }
    }
}
答复是:

"hits" : [
  {
    "_index" : "or-doc",
    "_type" : "_doc",
    "_id" : "9mCioHQBowpsxTkF3Jdx",
    "_score" : 0.0,
    "_source" : {
      "field1" : "word1"
    }
  },
  {
    "_index" : "or-doc",
    "_type" : "_doc",
    "_id" : "82CjoHQBowpsxTkFCZgE",
    "_score" : 0.0,
    "_source" : {
      "field1" : "OR word1"
    }
  }
]
注意:我转义了
,因为它被视为
保留字

如果你有任何问题,我很乐意帮助你


链接:

不建议使用查询字符串,如以下中所述:

因为对于任何无效的语法,它都会返回一个错误,所以我们不建议这样做 使用查询字符串查询搜索框

如果不需要支持查询语法,请考虑使用匹配 如果需要查询语法的功能,请使用 简单的\u查询\u字符串查询,不太严格

搜索查询:

{
  "query": {
    "match": {
      "title": {
        "query": "OR"
      }
    }
  }
}
"hits": [
            {
                "_index": "stof_63952836",
                "_type": "_doc",
                "_id": "2",
                "_score": 0.43445712,
                "_source": {
                    "title": "OR word1"
                }
            }
        ]
搜索结果:

{
  "query": {
    "match": {
      "title": {
        "query": "OR"
      }
    }
  }
}
"hits": [
            {
                "_index": "stof_63952836",
                "_type": "_doc",
                "_id": "2",
                "_score": 0.43445712,
                "_source": {
                    "title": "OR word1"
                }
            }
        ]