2013-04-11 23 views
13

Tôi đang cố truy vấn có thể trả về một json thỏa mãn cả hai điều kiện lọc. Tôi cố gắng để có được một câu trả lời mà đã ăn chứa một lĩnh vực có tên là "test1" và nó cũng nên được thiếu một trường "test2", Ive đã cố gắng truy vấnSử dụng bộ lọc bị thiếu và tồn tại cùng nhau trong truy vấn đơn

{ 
"query": { 
    "filtered": { 
    "query": { 
    "match_all": {} 
    }, 
     "filter": { 
     "missing": { 
     "field": "test2" 
     }, 
     "exists": { 
     "field": "test1" 
     } 
     } 
    } 
    } 
} 

Truy vấn trên trả về tất cả các lĩnh vực trong đó có các trường "test1" và nó cũng trả về các nguồn cấp dữ liệu bị thiếu trường "test2", tôi đang cố gắng thu hẹp phản hồi vì tôi chỉ muốn nguồn cấp dữ liệu thỏa mãn cả hai điều kiện.

Trả lời

24

Bạn có thể kết hợp hai hoặc nhiều bộ lọc sử dụng bool filter:

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "bool": { 
      "must": [{ 
      "missing": { 
       "field": "test2" 
      } 
      }, { 
      "exists": { 
       "field": "test1" 
      } 
      }] 
     } 
     } 
    } 
    } 
} 
+0

đó làm việc !! Cảm ơn rất nhiều!!!! :) – sam

Các vấn đề liên quan