之前一直按照官方文档翻译elasticsearch的部分,根据官网笔者总结了几个是实用的基础查询。
一、简单的term查询
{
"query":{
"term":{
"字段名": "值"
}
}
}
该查询类似于mysql中的where 字段名=”值” 一样的效果,可以用与查询类型为keywords、short、integer、long、boolean等字段,或者not_analyze的字段,不能够查询text类型或者analyze类型的字段,若查询则返回结果为空
二、简单的match查询
{
"query":{
"match":{
"字段名":"值"
}
}
}
match查询可以用于查询几乎所有的字段类型,但是该查询会将你的值,英文情况下按照空格分割为几个短的词然后分别匹配,只要包含该单词的均可被匹配到,然后按照匹配的score分数值排序返回。适用于模糊查询,关键词检索等情况,类似于mysql中的like但是比like更加强大。如果想用模糊检索该字段类型必须设置为可分析字段(analyze),或者text类型
三、简单的match_phrase查询
{
"query":{
"match_phrase":{
"字段名":"值"
}
}
}
match_phrase查询和match查询类似,但是该查询是短语查询,match_phrase查询的时候会用整个value值去匹配,和mysql 的like类似,相当于like %value% 去elasticsearch检索并返回结果集。
四、简单的range查询
{
"query":{
"range":{
"字段名":{
"gt":"value1",
"lt":"value2"
}
}
}
}
range查询通常适用于时间筛选,gt为大于、lt为小于、gte为大于等于、lte为小于等于。