三、标准查询语句使用
根据一个字段进行检索,假如我们要搜索content包含ES的文档,我们的查询语句可以这样写
GET zfc-doc-000001/_search
{
"query": {
"match":{
"content":"ES"
}
}
}上面这个语句的意思简单理解就是查询content字段中包含ES的文档。在深一层次来看,首先查看content字段的类型,通过查看上面的创建索引语句可以知道,content字段定义的是text类型,所以Elasticsearch会对content字段进行分词检索,返回文档中出现es的,除了上面这种写法外还可以使用如下几种方式进行检索
# 分词匹配es或者crud的文档
GET zfc-doc-000001/_search
{
"query": {
"match":{
"content":"ES crud"
}
}
}
# 短语查询分词es
GET zfc-doc-000001/_search
{
"query": {
"match_phrase":{
"content":"es"
}
}
}
# 前缀检索分词es
GET zfc-doc-000001/_search
{
"query": {
"prefix":{
"content":"es"
}
}
}
# 模糊匹配分词es
GET zfc-doc-000001/_search
{
"query": {
"fuzzy":{
"content":"es*"
}
}
}为了查询结果的更精确,增加title字段为ES的约束条件,需要注意大小写,因为title字段类型为keyword,不区分大小写的,所以查询语句可以这样写
该语句返回content字段中分词匹配词语ES(不区分大小写)的文档或者title字段精确匹配ES的文档
GET zfc-doc-000001/_search
{
"query": {
"multi_match": {
"query": "ES",
"fields":["content","title"]
}
}
}一个简单的检索语句通过上述几种方式即可实现了,但是实际工作中,肯定还是用到分词器的,下面就以常用的IK分词器进行说明