子条件查询:(特定字段查询所指特定值)
查询的模拟文档如下:
针对文本类型数据
(1)模糊匹配查询:
输入:
{
"query": {
"match": {
"author": "李歘歘"
}
}
}
查询结果:
(2)短语匹配查询:
输入:
{
"query": {
"match_phrase": {
"title": "elasticsearch入门"
}
}
}
查询结果:
(3)多个字段的匹配查询:
输入:
{
"query": {
"multi_match": {
"query": "李歘歘",
"fields": ["author","title"]
}
}
}
查询结果:
(3)语法查询:
输入:
{
"query": {
"query_string": {
"query": "(elasticsearch AND 入门) OR java "
}
}
}
查询结果:
(3)语法查询:
输入:
{
"query": {
"query_string": {
"query": "elasticsearch OR 李歘歘 ",
"fields": [
"title",
"author"
]
}
}
}
查询结果:
针对结构化数据,如数字、日期等
输入:
{
"query": {
"term": {
"word_count": 1000
}
}
}
查询结果:
输入:
{
"query": {
"range": {
"word_count": {
"gte": 1000,
"lte": 2000
}
}
}
}
gte和lte中‘e’代表等于
查询结果:
输入:
{
"query": {
"range": {
"publish_date": {
"gte": "1999-01-01",
"lte": "2000-01-01"
}
}
}
}
查询结果:
在查询过程中,只判断该文档是否满足条件,只有YES或者NO
查询字数是1000的书:
{
"query": {
"bool": {
"filter": {
"term": {
"word_count": 1000
}
}
}
}
}
查询结果:
查询title包含“elasticsearch”并且评分在3的书籍
输入:
{
"query": {
"constant_score": {
"filter": {
"match": {
"title": "elasticsearch"
}
},
"boost": 3
}
}
}
查询结果:
(1)查询title包含“elasticsearch”或者author包含“李歘歘”的书籍
输入:
{
"query": {
"bool": {
"should": [
{
"match": {
"author": "李歘歘"
}
},
{
"match": {
"title": "elasticsearch"
}
}
]
}
}
}
运行结果:
(2)查询title包含“elasticsearch”并且author包含“李歘歘”的书籍
输入:
{
"query": {
"bool": {
"must": [
{
"match": {
"author": "李歘歘"
}
},
{
"match": {
"title": "elasticsearch"
}
}
]
}
}
}
运行结果:
(3)查询title包含“elasticsearch”并且author包含“李歘歘”并且字数是1000的书籍
输入:
{
"query": {
"bool": {
"must": [
{
"match": {
"author": "李歘歘"
}
},
{
"match": {
"title": "elasticsearch"
}
}
],
"filter": {
"term": {
"word_count": 1000
}
}
}
}
}
运行结果:
(3)查询author不包含“李歘歘”的书籍
输入:
{
"query": {
"bool": {
"must_not": {
"term": {
"author": "李歘歘"
}
}
}
}
}
运行结果: