第十三篇 elasticsearch的Query DSL搜尋語法
阿新 • • 發佈:2019-02-13
Query DSL基本語法
{
QUERY_NAME: {
ARGUMENT: VALUE,
ARGUMENT: VALUE,...
}
}
{
QUERY_NAME: {
FIELD_NAME: {
ARGUMENT: VALUE,
ARGUMENT: VALUE,...
}
}
}
示例:
GET /test_index/test_type/_search
{
"query": {
"match": {
"test_field" : "test"
}
}
}
多條件搜尋
搜尋需求:title必須包含elasticsearch,content可以包含elasticsearch也可以不包含,author_id必須不為111
GET /website/article/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "elasticsearch"
}
}
],
"should": [
{
"match" : {
"content": "elasticsearch"
}
}
],
"must_not": [
{
"match": {
"author_id": 111
}
}
]
}
}
}
模擬一個更加複雜的語法
GET /test_index/_search
{
"query": {
"bool": {
"must": { "match" : { "name": "tom" }},
"should": [
{ "match": { "hired": true }},
{ "bool": {
"must": { "match": { "personality": "good" }},
"must_not": { "match": { "rude": true }}
}}
],
"minimum_should_match": 1
}
}
}