为什么此查询给我一个解析异常?如果我把它移开,它似乎确实起作用。但是我需要在其中带有query_string的布尔值。我该如何工作?
{
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"terms": {
"status_type": [
"5"
]
}
}
]
}
},
"filter": {
"query_string": {
"fields": [
[
"name",
"message"
]
],
"query": "Arnold AND Schwarz"
}
}
}
},
"sort": [
{
"total_metrics": {
"order": "desc"
}
}
]
}
您应该使用查询过滤器,它将所有查询包装到过滤器中。否则,您将得到解析错误No filter registered for [query_string]
。
您需要将filter
零件更改为:
"filter": {
"query": { // <- wraps a query as a filter
"query_string": {
"fields": [
[
"name",
"message"
]
],
"query": "Arnold AND Schwarz"
}
}
}
@Edit:由于我看到人们可能会注意到,我只粘贴了整个查询的更改部分,包括filter
部分(而不是整个filtered
),所以这里是修改后的全部:
{
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"terms": {
"status_type": [
"5"
]
}
}
]
}
},
"filter": {
"query": { // <- the only difference!
"query_string": {
"fields": [
[
"name",
"message"
]
],
"query": "Arnold AND Schwarz"
}
}
}
}
},
"sort": [
{
"total_metrics": {
"order": "desc"
}
}
]
}
考虑以下问题: 我在我们的一个系统中有这个查询,我想知道这个查询是否准确。确切地说,我的意思是,只有带有和的文档才应该返回,但决不能只返回一个单词、类似单词或根本没有匹配单词的文档。 RTFM。也许我读错了,但我没有找到这个问题的参考。 弹性5.6.3。 上述模拟的查询是否准确,这意味着它将仅使用与严格匹配的文档?
问题内容: 我正在尝试使用query_string编写查询以检索嵌套对象的数据查询。 我想做的查询的一个例子是: 其中“ a”是嵌套对象,“ id”是“ a”的字段。 我知道我可以使用嵌套查询成功地执行此任务,编写如下查询: 但是,我想避免这种情况。我不想自己弄清楚用户正在搜索嵌套字段并修改查询。我尝试使用“ fields”参数,但它似乎不适用于嵌套对象。 是否可以使用“ query_string
还有 我可以使用多个过滤器在一个必须像下面的代码:
这是一个关于2个查询的故事。一个返回结果,而另一个不返回结果。为什么? 返回结果的查询:
问题内容: 我尝试学习Elasticsearch将其添加到我的Rails应用程序中。我想对2个字段(就像它们只是一个字段)执行一次multi_match查询,并且还要对另一个必须等于1的字段(状态)进行过滤。 错误是: 请求中有什么问题?如何一起执行multi_match和BOOL? 问题答案: 使用过滤查询: 与Elasticsearch 5相同的查询:
问题内容: 我安装了16gb内存的Elasticsearch。我开始使用聚合,但是在尝试发出以下查询时遇到“ java.lang.OutOfMemoryError:Java堆空间”错误: query_string本身仅返回1266次匹配,因此OOM错误让我有些困惑。 我是否正确使用了聚合?如果没有,我该怎么做才能解决此问题?谢谢! 问题答案: 您正在将整个-,-和- 字段加载到内存中以进行汇总。这