我有一个弹性搜索查询,可以使用multi_match和range过滤器,但我无法找到添加术语过滤器的正确语法。
我使用的是elasticsearch版本7.1.0。
以下是有效的查询:
{
"body": {
"query": {
"bool": {
"must": {
"multi_match": {
"query": "nuclear power"
}
},
"filter": {
"range": {
"displaydate": {
"gte": "2019-07-02T16:26:04Z"
}
}
}
}
}
}
}
这将从我的索引中返回所有与“核能”短语匹配的文档,这些文档的发布日期在2019-07-02-16:26之后。
我现在希望能够过滤查询,以便它只返回某种类型的结果。索引中有一个名为object_type的字段,用于存储索引中每个项的对象类型。
我希望返回对象类型为'CORE_PAGE'或'MODULE_PAGE'的结果。我使用了'terms'而不是'term',因为'term'不支持值数组。
这就是我添加术语过滤器的方式:
{
"body": {
"query": {
"bool": {
"must": {
"multi_match": {
"query": "nuclear power"
}
},
"filter": {
"terms": {
"object_type": [
"Core_Page",
"Module_Page"
]
},
"range": {
"displaydate": {
"gte": "2019-07-02T16:16:50Z"
}
}
}
}
}
}
}
但现在我从ElasticSearch中返回了一个解析错误:
Elasticsearch\Common\Exceptions\BadRequest400Exception:
{
"error":
{"root_cause":
[
{
"type":"parsing_exception",
"reason":"[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line":1,
"col":142
}
],
"type":"parsing_exception",
"reason":"[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line":1,
"col":142
},
"status":400
}
我如何构造查询,使其对ElasticSearch解析器有意义?
当您有几个筛选器时,需要在数组中指定它们,如下所示:
{
"body": {
"query": {
"bool": {
"must": {
"multi_match": {
"query": "nuclear power"
}
},
"filter": [
{
"terms": {
"object_type": [
"Core_Page",
"Module_Page"
]
}
},
{
"range": {
"displaydate": {
"gte": "2019-07-02T16:16:50Z"
}
}
}
]
}
}
}
}
必须
、must_not
和shoul
也是如此
我希望,如果我选择“mammals”,动物选择选项只显示值为1的选项data-animal_class。 我知道如何获得哺乳动物值,但我不知道如何使用过滤器 这是我的代码:
问题内容: 使用Java Stream时,映射后有时会出现空值。当前,当这些值需要省略时,我使用: 对于更实用的样式,可以快速编写一个小的辅助方法: 这样您就可以使用方法引用了: 我找不到这样的jdk方法,即使我怀疑它们中已经包含了一种。这里有其他方法吗?还是他们出于某种原因忽略了这一点? 问题答案: 您可以从Java8 SDK 使用Objects :: nonNull :
我在lexer语法文件中编写并用antlr4编译它。上面说 看来“filter”只适用于ANTLR3 我查了wikihttp://www.antlr.org/wiki/display/antlr4/options,没有找到答案。“filter”关键字也不在源文件https://github.com/antlr/antlr4/blob/master/tool/src/org/antlr/v4/too
假设一个类MyClass: 这条流: 我想返回中包含条目的的每个实例。 如果我想要一份清单 但我真正需要的是一个列表 这就是我现在拥有的: 但不知怎的,这感觉不太对。除了在谓词中打开一个新的流之外,还有什么更清洁的解决方案吗?
我正在使用ffmpeg来生成一个mp3+JPG的漂亮视频。 这不起作用:ffmpeg-y-i 1.mp3-loop 1-i 1.jpg-filter_complex“[0:a]showwaves=s=1280x720:mode=line,colorkey=0x000000:0.01:0.1,format=yuva420p[v];[1:v][v]overlay[outv]”-filter_compl
如何使用RxJava过滤项目列表? 我有以下代码,发出: 并且我想在之后应用筛选器。您可以在下一段代码中看到我的解决方案,但也许还有更好的方法?