代码之家  ›  专栏  ›  技术社区  ›  rap-2-h

Elasticsearch获取属性不为空的文档

  •  0
  • rap-2-h  · 技术社区  · 6 年前

    IMG )我可以这样做:

    GET something/_search/?
    {
      "query": {
        "term": {"IMG": ""}
      }
    }
    

    它起作用是因为 IMG公司 是一个关键字。如果我想要 精确逆 ,也就是说把所有的文件 IMG公司 不为空,我应该键入什么?有没有“逆”的 term

    换句话说,Elasticsearch有没有办法 ?

    2 回复  |  直到 6 年前
        1
  •  6
  •   Val    6 年前

    上面的解决方案还将返回字段为null的文档,我猜这是您不希望看到的。所以正确的解决方案是:

    GET memoire/_search/?
    {
      "query": {
        "bool": {
          "filter": {
            "exists": {
              "field": "test"
            }
          },
          "must_not": {
            "term": {
              "test.keyword": ""
            }
          }
        }
      }
    }
    
        2
  •  1
  •   rap-2-h    6 年前

    这里有一个解决方案。使用 must_not term 查询。这应该起作用:

    GET memoire/_search/?
    {
      "query": {
        "bool": {
          "must_not": {
            "term": {"IMG.keyword": ""}
          }
        }
      }
    }