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": "上海"
}
}
]
}
}
}