elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL,elasticsearch,curl,elastic-stack,elasticsearch,Curl,Elastic Stack" /> elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL,elasticsearch,curl,elastic-stack,elasticsearch,Curl,Elastic Stack" />

elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL

elasticsearch 在弹性搜索中使用完成建议查询检查NOTNULL,elasticsearch,curl,elastic-stack,elasticsearch,Curl,Elastic Stack,我有一个现有的查询,它为邮政编码提供建议,查询如下(我用邮政编码硬编码为T0L) 这很好,但它会搜索城市中包含空值的某些结果。所以我需要过滤城市不为空的地址 因此,我遵循解决方案,准备了如下查询 { "query": { "constant_score": { "filter": { "exists": { "field": "city" } } } }, "suggest":{ "suggestio

我有一个现有的查询,它为邮政编码提供建议,查询如下(我用邮政编码硬编码为T0L

这很好,但它会搜索城市中包含空值的某些结果。所以我需要过滤城市不为空的地址

因此,我遵循解决方案,准备了如下查询

{
 "query": {
   "constant_score": {
     "filter": {
       "exists": {
         "field": "city"
       }
     }
   }
 }, 
  "suggest":{
    "suggestions":{
      "text":"T0L", 
      "completion":{
        "field": "postcode.suggest"
      }
    }
  }
}

但不幸的是,这并没有给出邮政编码包含T0L的所需地址,相反,我得到的结果是邮政编码以A1X开头。因此,我认为它正在查询城市所在的所有地址,而忽略了完成建议查询。你能告诉我哪里错了吗。或者可能是如何正确书写

无法在查询时过滤掉建议,因为
完成
建议者使用FST(在索引时构建的特殊内存数据结构)进行闪电般快速的搜索


但您可以更改映射并为建议者添加。上下文的基本思想是,它也在索引时与
完成
字段一起填充,因此可以在查询时与
建议
查询一起使用。

好的,明白了。我想一旦我的应用程序被获取,我就会处理它的空结果。谢谢。
{
 "query": {
   "constant_score": {
     "filter": {
       "exists": {
         "field": "city"
       }
     }
   }
 }, 
  "suggest":{
    "suggestions":{
      "text":"T0L", 
      "completion":{
        "field": "postcode.suggest"
      }
    }
  }
}