【发布时间】:2015-12-23 18:14:20
【问题描述】:
我有以下示例文件:
doc1
{
"privateIp": "172.31.97.21",
"instanceType": "production",
"publicIp": "172.31.8.12",
"avZone": "cmp019",
"instanceId": "i-00000039",
"instanceState": "running",
"description": "common node"
}
doc2
{
"privateIp": "172.31.97.12",
"instanceType": "production",
"publicIp": "172.31.8.4",
"avZone": "cmp019",
"instanceId": "i-00000038",
"instanceState": "running",
"description": "common node"
}
我需要使用多重匹配查询来查询它。但是,当我执行以下查询时:
{
"query": {
"multi_match" : {
"query": "172.31.8.12",
"fields": ["instanceId", "description", "privateIp", "publicIp"],
"operator": "AND",
"type": "cross_fields",
"lenient": true
}}}
我拿回了两个不受欢迎的文档 - 我只想要 doc1。而且doc2的得分比doc1高。
publicIp 和 privateIp 都映射为 IP 类型。
我怎样才能只取回 doc1?
【问题讨论】:
标签: elasticsearch