当前位置: 首页 > 面试题库 >

Elasticsearch 6.2 / Kibana查询:必须存在一个字段而不得存在一个字段

平学
2023-03-14
问题内容

我的愿望是搜索存在field_a而不存在fields_b的文档。有没有一种方法可以使用Kibana中的Lucene查询语法(Kibana的Discover部分中的Search字段)进行此操作。

我尝试使用 __missing_:field_b_ 失败( __exists_可行_ )。

我发现了这一点,但并没有太大帮助:

GET /_search
{
    "query": {
        "bool": {
            "must_not": {
                "exists": {
                    "field": "user"
                }
            }
        }
    }
}

问题答案:

对于lucene搜索语法:

_exists_:field_a AND !_exists_:field_b

对于elasticsearch搜索语法:

{
 "query" : {
  "bool" : {
   "must" : [
     {"exists" : { "field" : "field_a" }}
   ],
   "must_not": [
     {"exists" : { "field" : "field_b" }}
   ]
  }
 }
}


 类似资料:
  • 很抱歉提出这个问题,但ElasticSearch查询可能会令人困惑。。。 目标:创建一个类似谷歌搜索查询的查询。输入的单词越多,得到的匹配结果越少。例如“四川酱”比“木兰四川酱”产生更多的结果。我的索引有一个博客文章类型,它有字段“标题”、“标签”、“类别”。ElasticSearch必须找到与查询中的所有单词相匹配的每个文档。文字可以遍布各个领域。例如,如果一个文档的标题包含“木兰”,它的标签包

  • 我想要找到一个文件的名称包含'Bob',并有一个位置在'paducah'或'smyrna'。 以下是我现在所拥有的: 我知道问题出在location数组上,因为如果我将它改为一个没有数组的元素,那么查询就可以正常工作。 这是我能找到的最接近的答案。 它没有工作,我收到以下错误: [term]查询格式错误,应为[END_OBJECT],但找到[FIELD_NAME]

  • 问题内容: 如何查询或过滤一个字段不等于另一个字段?即,其中document1.city1.name不等于document1.city2.name。 这个的一些版本? http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/search-request-script- fields.html 问题答案: 是

  • 问题: 我已经在lucene索引中索引了NGA Geonames地名录。我需要模糊查询一个字段(地名),但将查询限制为具有特定国家代码的记录。下面是我正在运行的一个示例查询 我没有使用SOLR,我已经做了大量的研究和尝试,但我没有明确的答案,可能是我的速度太慢了。 我想对印度进行模糊搜索,但我只想要与“in”(国家代码)完全匹配的记录

  • 在测试我的Controller类时,我遇到了这个异常 我的控制器测试类如下所示 我的引导类 我的依赖项如下所示 IllegalArgumentException:必须至少存在一个JPA元模型没有解决我的问题

  • 我创建了一个包含标题字段和文本字段的文档弹性搜索索引。给定一个查询,我的搜索的期望行为是首先检查title字段,如果有任何文档的标题与查询“良好”匹配,那么这些文档必须排在前面。只有在良好的标题匹配之后,才应该返回具有良好文本匹配的文档。 通过“良好的标题匹配”,我的意思是类似于“查询接近标题的某个子集,其中接近意味着levinshtein距离小于某个给定数字”。这是一个阈值条件。因此,标题要么是