简体   繁体   English

弹性搜索问题中的术语解析错误

[英]Error in Term Parsing in Elastic search question

I have the following query:我有以下查询:

{
  "aggs": {
    "groupby": {
      "terms": {
        "field": "AMAZING LONG NAME THAT MAKES NO SENSE",
        "missing": "",
        "order": [
          {
            "_term": "asc"
          }
        ],
        "size": 10038
      }
    }
  },
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "must": [
              {
                "term": {
                  "match": {
                    "AMAZING LONG NAME THAT MAKES NO SENSE": "Term1"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  },
  "size": 10
}

And it raises a parsing_exception它引发了一个parsing_exception

{
    "error": {
        "root_cause": [
            {
                "type": "parsing_exception",
                "reason": "[term] query does not support [AMAZING LONG NAME THAT MAKES NO SENSE]",
                "line": 1,
                "col": 235
            }
        ],
        "type": "x_content_parse_exception",
        "reason": "[1:235] [bool] failed to parse field [filter]",
        "caused_by": {
            "type": "x_content_parse_exception",
            "reason": "[1:235] [bool] failed to parse field [must]",
            "caused_by": {
                "type": "parsing_exception",
                "reason": "[term] query does not support [AMAZING LONG NAME THAT MAKES NO SENSE]",
                "line": 1,
                "col": 235
            }
        }
    },
    "status": 400
}

My question is should it be the field name that is to be entered in match ?我的问题是它应该是要在match中输入的字段名称吗?

The Term query syntax can be corrected as belwo: Term 查询语法可以更正为 belwo:

POST demoindex/_search
  {
  "aggs": {
    "groupby": {
      "terms": {
        "field": "AMAZING LONG NAME THAT MAKES NO SENSE",
        "missing": "",
        "order": [
          {
            "_term": "asc"
          }
        ],
        "size": 10038
      }
    }
  },
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "must": [
              {
                "term": {
                  "AMAZING LONG NAME THAT MAKES NO SENSE": {
                    "value": "Term1"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  },
  "size": 10
}

Term query syntax is as belwo:术语查询语法如下:

query -> term -> fieldname(to perform exact match on)--> value query -> term -> fieldname(对其进行精确匹配)--> value

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM