全文检索,入参分词后检索整个文档
"query_string": {
"default_field": "name",
"query": "被检索的字符串"
}
前缀检索,入参分词
"prefix":{
"name": "被检索的前缀"
}
按属性精确查找,入参不会被分词
"term": {
"name": "被检索的字符串"
}
按属性多值精确查找,入参不会被分词
"terms": {
"name": [
"被检索的字符串1",
"被检索的字符串2"
]
}
多属性分词查找,入参被分词
"multi_match": {
"query": "被检索的字符串",
"fields": [
"name",
"city"
]
}
按属性分词查找,入参被分词
"match": {
"name": "name 是字段名,这段话是要检索的文本"
}
短语查找,入参分词,但是词序不变
"match_phrase": {
"name": "完整匹配"
}
范围查找
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
bool 值查找很特殊,它是上面查找的组合,可以把他们理解为
逻辑连接,上面的查询都是对文档的过滤。 filter 关键字也是
过滤作用的,但是它不能单独使用,必须跟 bool 联合使用
"bool": {
"must_not": [
{
"term": {
"name": {
"value": "被检索的字符串"
}
}
}
],
"filter": {
"exists": {
"field": "被检查的字段名"
}
}
}