ES查询相关字段区别
es中的term terms和match match_phrase 的区别
1、term:term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词拆解。
2、terms:terms里的[ ] 多个是或者的关系,只要满足其中一个词就可以
3、match:match进行搜索的时候,会先进行分词拆分,拆完后,再来匹配
4、match_phrase: match_phrase 称为短语搜索,要求所有的分词必须同时出现在文档中,同时位置必须紧邻一致
二、模糊查询的方式
1、wildcard:
GET kibana_sample_data_flights/_search
{
"query": {
"wildcard": {
"OriginCityName": {
"value": "Frankfurt*"
}
}
}
}
2、fuzzy:
GET /my_index/_search
{
"query": {
"fuzzy": {
"text": "surprize"
}
}
}
3、query_string:查询的字段名和查询字符串都可以使用wildcard
GET /_search
{
"query": {
"query_string" : {
"fields" : ["city.*"],
"query" : "this AND that OR thus"
}
}
}
4、regexp
GET /my_index/_search
{
"query": {
"regexp": {
"postcode": "W[0-9].+"
}
}
}