弹性搜索 从 IP= "1.1.1.1" 和名称 = "ETH1/10"中选择 *



我在elastichSearch上。我正在尝试完全匹配和操作。我试了很多方法,但一直以来,我的反应都很糟糕。这就像模糊的匹配。我需要与RDBMS完全匹配

SELECT * FROM IP="1.1.1.1" AND NAME="ETH1/10"

提前谢谢。

如果您需要完全匹配而不是match查询,请使用术语查询

添加工作示例

索引映射

{
"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"
}
}
]

这个怎么样?

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

最新更新