前面为大家介绍了:【ES系列06:ik分词+Full text queries 之match query、ES系列07:match_phrase与match_phrase_prefix query】。今天TeHero为大家分享 Full text queries 剩余的4种查询语句multi_match query、common terms query、query_string query、simple_query_string query, 同时结合倒排序索引原理,将DSL语句转化为sql语句,方便大家理解学习。 ps:文章最后有关于 Full text queries 所有查询的总结!
ps:上图的xmind文件获取方式见评论区!
在学习本节之前,请先参考:ES系列07:match_phrase与match_phrase_prefix query,完成数据导入和倒排列表的创建。
ps:如果看不懂上图,请先阅读学习:ElasticSearch系列05:倒排序索引与分词Analysis
一、multi_match query -match 的多字段版本
结合之间的match语法,这个是很好理解的:ES系列06:ik分词+Full text queries 之match query
# 1、同时查询 "content", "content.ik_smart_analyzer",得到文档3
GET /tehero_index/_doc/_search
{
"query": {
"multi_match": {
"query": "系统",
"fields": [
"content",
"content.ik_smart_analyzer"
]
}
}
}
# 2、同时查询 所有字段 得到所有文档
GET /tehero_index/_doc/_search
{
"query": {
"multi_match": {
"query": "系统",
"fields": [
"content",
"content.ik_smart_analyzer",
"content.ik_max_analyzer"
]
}
}
}
需要注意的是, 多个Fields之间的查询关系是 or ,就 相当于mysql 的 【where 字段1=“检索词”or 字段2 = “检索词” or 字段3 = “检索词”】
字段^数字:表示增强该字段(权重影响相关性评分)&#