首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“必须”函数在elasticsearch中不起作用

“必须”函数在elasticsearch中不起作用
EN

Stack Overflow用户
提问于 2012-05-17 06:16:13
回答 1查看 1.5K关注 0票数 0

我对Elasticsearch还不熟悉,我还在使用一个数据库。我想做一个这样的查询:

curl -X GET http://localhost:9200/project/flat_order/_search?pretty=true -d' { query:{ bool:{ must:{range:{created_at:{gte:"2012-01-01 00:00:00",lte:"2012-02-01 00:00:00"}}}}, {should:[{term:{status:"canceled"}}],minimum_number_should_match:1} } } }'

我有个错误。"error" : "SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures {[YfeNrRnOTOqLOtQt65uPVw][project][1]: SearchParseException[[project][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [ { query:{ bool:{ must:{range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}}}, {should:[{term:{status:\"canceled\"}}],minimum_number_should_match:1} } } }]]]; nested: QueryParsingException[[project] Failed to parse]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [B@3742925a; line: 1, column: 102]]; }{[YfeNrRnOTOqLOtQt65uPVw][project][2]: SearchParseException[[project][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [ { query:{ bool:{ must:{range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}}}, {should:[{term:{status:\"canceled\"}}],minimum_number_should_match:1} } } }]]]; nested: QueryParsingException[[project] Failed to parse]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [B@3742925a; line: 1, column: 102]]; }]", "status" : 500 }

该怎么办呢?提前谢谢。

这是我在没有这些大括号(随附) "error" : "SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures {[YfeNrRnOTOqLOtQt65uPVw][project][0]: SearchParseException[[project][0]: query[created_at:[1325376000000 TO 1328054400999]],from[-1],size[-1]: Parse Failure [Failed to parse source [ { query:{ bool:{ must:{range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}}}, should:[{term:{status:\"canceled\"}}],minimum_number_should_match:1 } } }]]]; nested: SearchParseException[[project][0]: query[created_at:[1325376000000 TO 1328054400999]],from[-1],size[-1]: Parse Failure [No parser for element [term]]]; }{[YfeNrRnOTOqLOtQt65uPVw][project][4]: SearchParseException[[project][4]: query[created_at:[1325376000000 TO 1328054400999]],from[-1],size[-1]: Parse Failure [Failed to parse source [ { query:{ bool:{ must:{range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}}}, should:[{term:{status:\"canceled\"}}],minimum_number_should_match:1 } } }]]]; nested: SearchParseException[[project][4]: query[created_at:[1325376000000 TO 1328054400999]],from[-1],size[-1]: Parse Failure [No parser for element [term]]]; }]", "status" : 500 }时所遇到的错误。

EN

回答 1

Stack Overflow用户

发布于 2012-05-17 06:48:40

看一下错误的细节,我相信问题在于您已经为您的should子句提供了额外的嵌套级别,而您不应该这样做。而不是:

代码语言:javascript
运行
复制
must: { ... },
{ should: { ... },
  minimum_number_should_match:1}
}

尝试:

代码语言:javascript
运行
复制
must: { ... },
should: { ... },
minimum_number_should_match:1}

编辑:您编辑的代码看起来像您的查询:

代码语言:javascript
运行
复制
query:{ bool:{ must:{range:{created_at:{gte:\"2012-01-01 00:00:00\",
lte:\"2012-02-01 00:00:00\"}}}}, should:[{term:status:\"canceled\"}}],
minimum_number_should_match:1 }

格式如下:

代码语言:javascript
运行
复制
query:{ 
 bool:{ 
  must:{
   range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}
  }
 },
 should: [
  {term:{status:\"canceled\"}}
 ],
 minimum_number_should_match:1
}

..。它的should位于bool部件之外。换句话说,must子句后面的大括号太多了。我认为应该是:

代码语言:javascript
运行
复制
query:{ 
 bool:{ 
  must:{
   range:{created_at:{gte:\"2012-01-01 00:00:00\",lte:\"2012-02-01 00:00:00\"}}
  },
  should: [
   {term:{status:\"canceled\"}}
  ],
  minimum_number_should_match:1
 } 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10630754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档