match和term查询的区别

match
- match的查询词会被分词
- match_phrase 不会分词
- match_phrase 可对多个字段进行匹配

term
- term代表完全匹配,不进行分词器分析
- term 查询的字段需要在mapping的时候定义好,否则可能词被分词。传入指定的字符串,查不到数据

bool联合查询
- must should must_not
- must 完全匹配
- should 至少满足一个
- must_not不匹配

举个栗子

{
	  "query": {
	    "bool": {
	      "must": {
	        "term": {
	          "content": "宝马"
	        }
	      },
	      "must_not": {
	        "term": {
	          "tags": "宝马"
	        }
	      }
	    }
	  }
	}
一个简单的查询
POST product/_search
{
    "size": 20,
    "query": {
        "bool": {
            "must": [
               {
                   "term": {
                      "attribute": {
                         "value": "13"
                      }
                   }
               },
               {
                   "match": {
                      "departureCitys": "上海"
                   }
               }
            ]
        }
    }
}