在elasticsearch文档中查找bool查询,请参见以下链接:https://www.elastic.co/guide/en/elasticsearch/reference/1.4/query-dsl-bool-query.html
它没有说包含结构。如果我只是按照他们的方式使用bool,那是完全错误的。我需要用一些查询/筛选/筛选查询的愚蠢组合来围绕这个问题。我不确定在Elastic中形成json查询的正确方法是什么。这些文件似乎在许多地方完全矛盾,关于什么去哪里和如何去。有没有elasticsearch专家知道如何正确地形成查询?
首先,有一个“bool”
查询和一个“bool”
筛选器,它们位于不同的位置,所做的事情略有不同。作为一般规则,如果您可以使用筛选器,请执行此操作(其中许多筛选器可以缓存,即使不缓存,也会稍微快一点)。如果需要“match”
,则需要查询。
您引用的页面上的示例实际上可以用两种方式:
作为查询:
POST /test_index/_search
{
"query": {
"bool": {
"must": {
"term": {
"user": "kimchy"
}
},
"must_not": {
"range": {
"age": {
"from": 10,
"to": 20
}
}
},
"should": [
{
"term": {
"tag": "wow"
}
},
{
"term": {
"tag": "elasticsearch"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
}
}
或作为筛选器(在筛选的查询中):
POST /test_index/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": {
"term": {
"user": "kimchy"
}
},
"must_not": {
"range": {
"age": {
"from": 10,
"to": 20
}
}
},
"should": [
{
"term": {
"tag": "wow"
}
},
{
"term": {
"tag": "elasticsearch"
}
}
],
"minimum_should_match": 1
}
}
}
}
}
同时,我也完全对ES文档感到沮丧。我已经和他们一起工作几年了,他们似乎没有任何好转。也许负责文档的人并不关心这些。阴谋论的观点是,糟糕的文档有助于公司销售专业服务。
如果我有文件: 我想用“红棕色黄”查询,得到文档1。 我怎么能这么做?反过来很容易...
如何查询同时包含键值对“key1”-“value1”和“key2”-“value2”的文档?我似乎找不到关于这个的任何文件。 我尝试了下面的查询,但它没有返回任何结果,即使应该有匹配的文档。虽然用should替换must是可行的,但当我将minimum_should_match=100%时,它也不会返回任何结果。 这是映射的外观: 非常感谢你的帮助。
我是elasticsearch的新手,对如何进行过滤器、查询和聚合有一些想法,但不确定如何解决下面的问题。我希望能够从下面显示的文档中只查询公司的最新交付(日期和crate_quantity)。我不确定如何去做。有没有办法使用最大聚合从每个文档中只提取最近的交付?
我有如下所示的ES文档: 我需要一个搜索(或多个搜索)的以下答案 将来有的文档数(例如>现在) 将来有检查的文档数(例如>现在) 未来7天的日期直方图(日细分),包含当天具有的文档数 未来7天的日期直方图(日细分),包含当天的文档数 所以,我正试图找出如何有效地得到这些答案。我知道我可以/应该测试所有不同的方法,但我对ES相对来说是新手,所以说起来容易做起来难。 有人能给我一个建议(或者理想情况下
我正在尝试查询嵌入的文档,以获得如下结果: 文件: 我正在尝试使用SQL查询查询上述文档: 预期输出:(当我们使用位置 Id = 14 时,我们需要忽略位置 Id = 16,因为 Id = 1): 不起作用,我没有得到预期的输出,当我使用上述查询时,它给我空的结果。我如何使用嵌入文档上的where子句进行查询?
我在ElasticSearch有索引。其中的文档具有重复的字段值。在查询结果中,我需要删除所有重复项,并且只获得不同的值。例如: PUT localhost:9200/人 POST localhost:9200/人/人 我试图通过字段“name”删除重复的术语聚合,但它不起作用。 获取localhost:9200/person/person/_search 结果: 聚合应用于name=“marry