Query Content
在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件的匹配有多好
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"match": {
"author": "金庸"
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"match": {
"title": "入门"
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"match_phrase": {
"title": "入门"
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"multi_match": {
"query": "金庸",
"fields": ["author", "title"]
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"query_string": {
"query": "(java AND 门) OR 入"
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"query_string": {
"query": "java OR 门",
"fields": ["title", "author"]
}
}
}
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"term": {
"word_count": 100000
}
}
}
#gte:greater than equal
POST 192.168.100.102:9200/book/_search
{
"query": {
"range": {
"word_count": {
"gt": 1000,
"lte": 1000000
}
}
}
}
#gte:greater than equal
POST 192.168.100.102:9200/book/_search
{
"query": {
"range": {
"publish_date": {
"gt": "2007-12-01",
"lte": "now"
}
}
}
}
Filter Content
在查询过程中,只判断该文档是否满足条件,只有yes后者no
#
POST 192.168.100.102:9200/book/_search
{
"query": {
"bool": {
"filter": {
"term": {
"word_count": 100000
}
}
}
}
}
复合查询
常用查询
固定分数查询,布尔查询
#查询条件title=”java”
POST 192.168.100.102:9200/_search
{
"query": {
"match": {
"title": "java"
}
}
}
#
POST 192.168.100.102:9200/_search
{
"query": {
"constant_score": {
"filter": {
"match": {
"title": "java"
}
}
}
}
}
#
POST 192.168.100.102:9200/_search
{
"query": {
"constant_score": {
"filter": {
"match": {
"title": "java"
}
}
}
},
"boost": 2
}
#
POST 192.168.100.102:9200/_search
{
"query": {
"bool": {
"should": [
{
"match": {"author": "金庸"}
},
{
"match": {"title": "java"}
}
]
}
}
}
#
POST 192.168.100.102:9200/_search
{
"query": {
"bool": {
"must": [
{
"match": {"author": "金庸"}
},
{
"match": {"title": "java"}
}
],
"filter": [
{
"term": {
"word_count": 100000
}
}
]
}
}
}
#
POST 192.168.100.102:9200/_search
{
"query": {
"bool": {
"must_not": {
"term": {
"author": "hoo"
}
}
}
}
}