elasticsearch select*from ip=“1.1.1.1”and name=“eth1/10”

1qczuiv0  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(2)|浏览(254)

我不在 elastichSearch . 我正在尝试完全匹配和操作。我试了很多方法,但一直以来我的React都很糟糕。就像模糊的匹配。我需要完全匹配 RDBMS ```
SELECT * FROM IP="1.1.1.1" AND NAME="ETH1/10"

提前谢谢。
sbtkgmzw

sbtkgmzw1#

这个怎么样?

{
   "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "IP":"1.1.1.1"
                    }
                },
                {
                    "match":{
                        "NAME":"ETH1/10"
                    }
                }
            ]
        }
      }
   }
}
q5lcpyga

q5lcpyga2#

如果你需要精确匹配而不是 match 查询使用术语查询
添加工作示例
索引Map

{
    "mappings": {
        "properties": {
            "name": {
                "type": "keyword"
            },
            "ip" :{
                "type" : "ip"
            }
        }
    }
}

索引示例文档

{
    "name" : "ETH1/10",
    "ip" : "1.1.1.1"
}

和搜索查询

{
    "query": {
        "bool": {
            "filter": [ --> use `filter` as pointed by @Val in the comment.
                {
                    "term": {
                        "ip": "1.1.1.1"
                    }
                },
                {
                    "term": { --> `term` query for exact match.
                        "name": "ETH1/10"
                    }
                }
            ]
        }
    }
}

和搜索结果

"hits": [
            {
                "_index": "65167713",
                "_type": "_doc",
                "_id": "1",
                "_score": 0.0,
                "_source": {
                    "name": "ETH1/10",
                    "ip": "1.1.1.1"
                }
            }
        ]

相关问题