简体   繁体   English

带有query_string和range的Elasticsearch

[英]Elasticsearch with query_string and range

I'm trying to get a result that is greater than X and has a field equal to Y. I tried this: 我试图获得大于X且具有等于Y的字段的结果。

{
   "sort": {
      "datapublicacao": "desc"
   },
   "query": {
      "query_string": {
         "query": "fullslug:noticia"
      },
      "range": {
         "id": {
            "gt": "145890"
         }
      }
   }
}

But the following error occurs: 但是会发生以下错误:

{
   "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[PkbOJvspSO-yk_8dRMmxcg][jornal.jurid][2]: SearchParseException[[jornal.jurid][2]: query[fullslug:noticia],from[-1],size[-1],sort[<custom:\"datapublicacao\": org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource@4105c103>!]: Parse Failure [Failed to parse source [{\n   \"sort\": {\n      \"datapublicacao\": \"desc\"\n   },\n   \"query\": {\n      \"query_string\": {\n         \"query\": \"fullslug:noticia\"\n      },\n      \"range\": {\n         \"id\": {\n            \"gt\": \"145890\"\n         }\n      }\n   }\n}\n]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"range\"]; }{[PkbOJvspSO-yk_8dRMmxcg][jornal.jurid][3]: SearchParseException[[jornal.jurid][3]: query[fullslug:noticia],from[-1],size[-1],sort[<custom:\"datapublicacao\": org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource@32ef6244>!]: Parse Failure [Failed to parse source [{\n   \"sort\": {\n      \"datapublicacao\": \"desc\"\n   },\n   \"query\": {\n      \"query_string\": {\n         \"query\": \"fullslug:noticia\"\n      },\n      \"range\": {\n         \"id\": {\n            \"gt\": \"145890\"\n         }\n      }\n   }\n}\n]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"range\"]; }{[PkbOJvspSO-yk_8dRMmxcg][jornal.jurid][0]: SearchParseException[[jornal.jurid][0]: query[fullslug:noticia],from[-1],size[-1],sort[<custom:\"datapublicacao\": org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource@1534ed83>!]: Parse Failure [Failed to parse source [{\n   \"sort\": {\n      \"datapublicacao\": \"desc\"\n   },\n   \"query\": {\n      \"query_string\": {\n         \"query\": \"fullslug:noticia\"\n      },\n      \"range\": {\n         \"id\": {\n            \"gt\": \"145890\"\n         }\n      }\n   }\n}\n]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"range\"]; }{[PkbOJvspSO-yk_8dRMmxcg][jornal.jurid][1]: SearchParseException[[jornal.jurid][1]: query[fullslug:noticia],from[-1],size[-1],sort[<custom:\"datapublicacao\": org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource@21c787c>!]: Parse Failure [Failed to parse source [{\n   \"sort\": {\n      \"datapublicacao\": \"desc\"\n   },\n   \"query\": {\n      \"query_string\": {\n         \"query\": \"fullslug:noticia\"\n      },\n      \"range\": {\n         \"id\": {\n            \"gt\": \"145890\"\n         }\n      }\n   }\n}\n]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"range\"]; }{[PkbOJvspSO-yk_8dRMmxcg][jornal.jurid][4]: SearchParseException[[jornal.jurid][4]: query[fullslug:noticia],from[-1],size[-1],sort[<custom:\"datapublicacao\": org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource@45d53e55>!]: Parse Failure [Failed to parse source [{\n   \"sort\": {\n      \"datapublicacao\": \"desc\"\n   },\n   \"query\": {\n      \"query_string\": {\n         \"query\": \"fullslug:noticia\"\n      },\n      \"range\": {\n         \"id\": {\n            \"gt\": \"145890\"\n         }\n      }\n   }\n}\n]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"range\"]; }]",
   "status": 400
}

If I make the query just with the query_string or just the range, it works, but with them both it does not work. 如果我仅使用query_string或范围进行查询,则可以使用,但不能同时使用它们。

Use elasticsearch bool search as below 使用弹性搜索布尔搜索如下

{
"query": {
    "filtered": {
        "query": {
            "bool": {
                "must": [
                    {
                        "query_string": {
                            "query": "fullslug:noticia"
                        }
                    },
                    {
                        "range": {
                            "id": {
                                "gte": 145890
                            }
                        }
                    }
                ]
            }
        }
    }
},
"sort": {
    "datapublicacao": "desc"
}
}

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

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