elasticsearch 嵌套对象使用Multi Match Query、query_string全文检索设置

参考:

https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-nested-type.html

https://stackoverflow.com/questions/31829654/elastic-search-nested-multimatch-query

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/nested.html

Note: changing an object type to nested type requires reindexing.

The nested object fields can also be automatically added to the immediate parent by setting include_in_parent to true, and also included in the root object by setting include_in_root to true.

Nested docs will also automatically use the root doc _all field.

//-------------------------创建索引--------------------------
--------------http://172.19.12.249:9200/indextest0121/_search
{
  "mappings": {
    "my_type": {
      "properties": {
		"sasj": {
		  "type": "date",
		  "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
		},
		"lasj": {
		  "type": "date",
		  "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
		},
		"xasj": {
		  "type": "date",
		  "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
		},
		"pasj": {
		  "type": "date",
		  "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
		},
		"zxxgsj": {
		  "type": "date",
		  "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" 
        },
        "saryxx": {
          "type": "nested",
          "include_in_parent":true,
          "include_in_root":true
        },
        "wp": {
          "type": "nested",
          "include_in_parent" : true,
          "include_in_root":true,
          "properties": {
            "zxxgsj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        },
        "rqxx": {
          "type": "nested",
          "include_in_parent":true,
          "include_in_root":true,
          "properties": {
            "jrsj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "lksj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        }
      }
    }
  }
}

//------------------------插入文档------------------------------

{

	"ajbh": "A2310010920092015010163",
	"ajmc": "20140609郭广瑞生产、销售伪劣产品案",
	"ajlxbm": "01",
	"ajlxmc": "刑事",
	"ajztbm": "01",
	"ajztmc": "立案",
	"sabar": "王五,赵六",
	"sabarzjhm": "230106197001013213,230106197201013233",
	"sabadw": "231010050200",
	"sabadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
	"labar": "王五,赵六",
	"labarzjhm": "230106197001013213,230106197201013233",
	"labadw": "231010050200",
	"labadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
	"xabar": "王五,赵六",
	"xabarzjhm": "230106197001013213,230106197201013233",
	"xabadw": "231010050200",
	"xabadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
	"pabar": "王五,赵六",
	"pabarzjhm": "230106197001013213,230106197201013233",
	"pabardw": "231010050200",
	"pabardwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
	"sasj": "2015-01-01 12:10:30",
	"lasj": "2015-01-02 12:10:30",
	"xasj": "2015-01-03 12:10:30",
	"pasj": "2015-01-04 12:10:30",
	"zxxgsj": "2015-01-04 12:10:30"
	,
	"saryxx": [{
		"rylx": "01",
		"rylxmc": "嫌疑人",
		"rybh": "R2301060000000001",
		"ryxm": "张三",
		"ryxb": "女",
		"rynl": "20",
		"ryzjhm": "230106199001123141",
		"ryjtzz": "哈尔滨市松北别墅区",
		"rylxdh": "18011111114"
	},{
		"rylx": "01",
		"rylxmc": "违法行为人",
		"rybh": "R2301060000000001",
		"ryxm": "李四",
		"ryxb": "男",
		"rynl": "20",
		"ryzjhm": "230106199001123141",
		"ryjtzz": "哈尔滨市松北别墅区",
		"rylxdh": "18011111114"
	}],
	"wp": [{
		"wpmc": "可燃气体探测器",
		"wpzlbm": "01",
		"wpzlmc": "赃物",
		"wpzl": "1公斤",
		"wpxh": "100cmX100cmX100cm",
		"wpztbm": "01",
		"wpztmc": "物品入库",
		"wpsl": "13",
		"kfxx": "牡丹江市公安局涉案财务",
		"kwxx": "A-刑事案件物品存放库|第01排|第01行|第01列|",
		"kgy": "库管员",
		"kypzr": "于令君",
		"kfgly": "牡丹江库房管理员",
		"bcqx": "12个月",
		"kysj": "2015-01-01 12:10:30",
		"zxxgsj": "2015-01-01 12:10:30"
	},{
		"wpmc": "刀",
		"wpzlbm": "01",
		"wpzlmc": "凶器",
		"wpzl": "1公斤",
		"wpxh": "100cmX100cmX100cm",
		"wpztbm": "01",
		"wpztmc": "物品登记",
		"wpsl": "13",
		"kfxx": "牡丹江市公安局涉案财务",
		"kwxx": "A-刑事案件物品存放库|第01排|第01行|第01列|",
		"kgy": "库管员",
		"kypzr": "于令君",
		"kfgly": "牡丹江库房管理员",
		"bcqx": "12个月",
		"kysj": "2015-01-01 12:10:30",
		"zxxgsj": "2015-01-01 12:10:30"
	}],
	"rqxx": [{
		"baqmc": "办案区名称",
		"shbh": "手环编号",
		"fjbh": "房间编号",
		"fjmc": "房间名称",
		"jrsj": "2015-01-01 12:10:30",
		"lksj": "2015-01-01 12:10:30",
		"rqyybm": "01",
		"rqyymc": "传唤",
		"lqyybm": "01",
		"lqyymc": "传唤结束"

	}]
}

//---------------------------查询文档--------------------------

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "ajztmc": "立案"
                    }
                },
                {
                    "match": {
                        "ajlxmc": "刑事"
                    }
                },
                {
                    "range": {
                        "lasj": {
                            "gte": "2015-01-01 12:10:10",
                            "lte": "2016-01-01 12:10:40"
                        }
                    }
                },
                {
                    "nested": {
                        "path": [
                            "rqxx"
                        ],
                        "query": {
                            "bool": {
                                "must": [
                                    {
                                        "match": {
                                            "rqxx.baqmc": "办案区名称"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                {
                    "nested": {
                        "path": [
                            "saryxx"
                        ],
                        "query": {
                            "bool": {
                                "must": [
                                    {
                                        "match": {
                                            "saryxx.rylxmc": "嫌疑人"
                                        }
                                    },
                                    {
                                        "match": {
                                            "saryxx.ryxb": "女"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                {
                    "nested": {
                        "path": [
                            "wp"
                        ],
                        "query": {
                            "bool": {
                                "must": [
                                    {
                                        "match": {
                                            "wp.wpzlmc": "赃物"
                                        }
                                    },
                                    {
                                        "match": {
                                            "wp.wpztmc": "物品入库"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                {
                    "multi_match": {
                        "query": "男",
                        "lenient": "true",
                        "fields": [
                            "*"
                        ]
                    }
                }
            ]
        }
    },
    "from": 0,
    "size": 100,
    "sort": {
        "zxxgsj": {
            "order": "desc"
        }
    }
}

 

//-------------------------创建索引--------------------------
{
  "mappings": {
    "my_type": {
      "properties": {
        "ajxx": {
          "type": "nested",
          "include_in_parent":true,
          "include_in_root":true,
          "properties": {
            "sasj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "lasj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "xasj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "pasj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "zxxgsj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        },
        "saryxx": {
          "type": "nested",
          "include_in_parent":true,
          "include_in_root":true
        },
        "wp": {
          "type": "nested",
          "include_in_parent" : true,
          "include_in_root":true,
          "properties": {
            "zxxgsj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        },
        "rqxx": {
          "type": "nested",
          "include_in_parent":true,
          "include_in_root":true,
          "properties": {
            "jrsj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            },
            "lksj": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
          }
        }
      }
    }
  }
}

//------------------------插入文档------------------------------

{
	"ajxx": [{
		"ajbh": "A2310010920092015010163",
		"ajmc": "20140609郭广瑞生产、销售伪劣产品案",
		"ajlxbm": "01",
		"ajlxmc": "刑事",
		"ajztbm": "01",
		"ajztmc": "立案",
		"sabar": "王五,赵六",
		"sabarzjhm": "230106197001013213,230106197201013233",
		"sabadw": "231010050200",
		"sabadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
		"labar": "王五,赵六",
		"labarzjhm": "230106197001013213,230106197201013233",
		"labadw": "231010050200",
		"labadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
		"xabar": "王五,赵六",
		"xabarzjhm": "230106197001013213,230106197201013233",
		"xabadw": "231010050200",
		"xabadwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
		"pabar": "王五,赵六",
		"pabarzjhm": "230106197001013213,230106197201013233",
		"pabardw": "231010050200",
		"pabardwmc": "黑龙江牡丹江市公安局华电分局刑事侦查队",
		"sasj": "2015-01-01 12:10:30",
		"lasj": "2015-01-02 12:10:30",
		"xasj": "2015-01-03 12:10:30",
		"pasj": "2015-01-04 12:10:30",
		"zxxgsj": "2015-01-04 12:10:30"
	}],
	"saryxx": [{
		"rylx": "01",
		"rylxmc": "嫌疑人",
		"rybh": "R2301060000000001",
		"ryxm": "张三",
		"ryxb": "女",
		"rynl": "20",
		"ryzjhm": "230106199001123141",
		"ryjtzz": "哈尔滨市松北别墅区",
		"rylxdh": "18011111114"
	},{
		"rylx": "01",
		"rylxmc": "违法行为人",
		"rybh": "R2301060000000001",
		"ryxm": "李四",
		"ryxb": "男",
		"rynl": "20",
		"ryzjhm": "230106199001123141",
		"ryjtzz": "哈尔滨市松北别墅区",
		"rylxdh": "18011111114"
	}],
	"wp": [{
		"wpmc": "可燃气体探测器",
		"wpzlbm": "01",
		"wpzlmc": "赃物",
		"wpzl": "1公斤",
		"wpxh": "100cmX100cmX100cm",
		"wpztbm": "01",
		"wpztmc": "物品入库",
		"wpsl": "13",
		"kfxx": "牡丹江市公安局涉案财务",
		"kwxx": "A-刑事案件物品存放库|第01排|第01行|第01列|",
		"kgy": "库管员",
		"kypzr": "于令君",
		"kfgly": "牡丹江库房管理员",
		"bcqx": "12个月",
		"kysj": "2015-01-01 12:10:30",
		"zxxgsj": "2015-01-01 12:10:30"
	},{
		"wpmc": "刀",
		"wpzlbm": "01",
		"wpzlmc": "凶器",
		"wpzl": "1公斤",
		"wpxh": "100cmX100cmX100cm",
		"wpztbm": "01",
		"wpztmc": "物品登记",
		"wpsl": "13",
		"kfxx": "牡丹江市公安局涉案财务",
		"kwxx": "A-刑事案件物品存放库|第01排|第01行|第01列|",
		"kgy": "库管员",
		"kypzr": "于令君",
		"kfgly": "牡丹江库房管理员",
		"bcqx": "12个月",
		"kysj": "2015-01-01 12:10:30",
		"zxxgsj": "2015-01-01 12:10:30"
	}],
	"rqxx": [{
		"baqmc": "办案区名称",
		"shbh": "手环编号",
		"fjbh": "房间编号",
		"fjmc": "房间名称",
		"jrsj": "2015-01-01 12:10:30",
		"lksj": "2015-01-01 12:10:30",
		"rqyybm": "01",
		"rqyymc": "传唤",
		"lqyybm": "01",
		"lqyymc": "传唤结束"

	}]
}

//---------------------------查询文档--------------------------

{
    "query": {
        "bool": {
            "must": [
                {
                    "nested": {
                        "path": [
                            "ajxx"
                        ],
                        "query": {
                            "bool": {
                                "must": [
                                    {
                                        "match": {
                                            "ajxx.ajztmc": "立案"
                                        }
                                    },
                                    {
                                        "range": {
                                            "ajxx.sasj": {
                                                "gte": "2015-01-01 12:10:10",
                                                "lte": "2016-01-01 12:10:40"
                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                {
                    "nested": {
                        "path": [
                            "rqxx"
                        ],
                        "query": {
                            "bool": {
                                "must": [
                                    {
                                       
                                        "match": {
                                            "rqxx.baqmc": "办案区名称"
                                        }
                                      
                                    },
                                    {
                                        "range": {
                                            "rqxx.jrsj": {
                                                "gte": "2015-01-01 12:10:10",
                                                "lte": "2016-01-01 12:10:40"
                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                {
                    "multi_match": {
                        "query": "男",
                        "lenient": "true",
                        "fields": [
                            "*"
                        ]
                    }
                }
            ]
        }
    }
}

2018年9月17日 16:06:59 更新查询,办案单位改为should 方式

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "ajztmc": "立案"
                    }
                },
                {
                    "range": {
                        "lasj": {
                            "gte": "2015-01-01 12:10:10",
                            "lte": "2016-01-01 12:10:40"
                        }
                    }
                },
                {
                    "query_string": {
                        "query": "*"
                    }
                }
            ],
            "should": [
                {
                    "wildcard": {
                        "badw": "231010050202*"
                    }
                },
                {
                    "wildcard": {
                        "badw": "231010050201*"
                    }
                }
            ],
            "minimum_should_match": 1
        }
    },
    "from": 0,
    "size": 10,
    "sort": {
        "zxxgsj": {
            "order": "desc"
        }
    }
}

2018年9月17日 16:07:51 aggs 分组

{
    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "lasj": {
                            "gte": "2015-01-01 12:10:10",
                            "lte": "2016-01-01 12:10:40"
                        }
                    }
                },
                {
                    "query_string": {
                        "query": "*"
                    }
                }
            ],
            "should": [
                {
                    "wildcard": {
                        "badw": "231010050202*"
                    }
                },
                {
                    "wildcard": {
                        "badw": "231010050201*"
                    }
                }
            ],
            "minimum_should_match": 1
        }
    },
    "from": 0,
    "size": 10,
    "sort": {
        "zxxgsj": {
            "order": "desc"
        }
    },
    "aggs": {
        "ajlxmc": {
            "terms": {
                "field": "ajlxmc"
            },
            "aggs": {
                "rylxmc": {
                    "terms": {
                        "field": "rylxmc"
                    },
                    "aggs": {
                        "ryxb": {
                            "terms": {
                                "field": "ryxb"
                            }
                        }
                    }
                }
            }
        },
        "ajztbm": {
            "terms": {
                "field": "ajztbm"
            },
            "aggs": {
                "ajlxmc": {
                    "terms": {
                        "field": "ajlxmc"
                    },
                    "aggs": {
                        "rylxmc": {
                            "terms": {
                                "field": "rylxmc"
                            },
                            "aggs": {
                                "ryxb": {
                                    "terms": {
                                        "field": "ryxb"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

结果

{
    "aggregations": {
        "ajlxmc": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "刑事",
                    "doc_count": 70,
                    "rylxmc": {
                        "doc_count_error_upper_bound": 0,
                        "sum_other_doc_count": 0,
                        "buckets": [
                            {
                                "key": "犯罪嫌疑人",
                                "doc_count": 16,
                                "ryxb": {
                                    "doc_count_error_upper_bound": 0,
                                    "sum_other_doc_count": 0,
                                    "buckets": [
                                        {
                                            "key": "男",
                                            "doc_count": 14
                                        },
                                        {
                                            "key": "女",
                                            "doc_count": 2
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "ajztbm": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "结案",
                    "doc_count": 32,
                    "ajlxmc": {
                        "doc_count_error_upper_bound": 0,
                        "sum_other_doc_count": 0,
                        "buckets": [
                            {
                                "key": "刑事",
                                "doc_count": 32,
                                "rylxmc": {
                                    "doc_count_error_upper_bound": 0,
                                    "sum_other_doc_count": 0,
                                    "buckets": [
                                        {
                                            "key": "犯罪嫌疑人",
                                            "doc_count": 13,
                                            "ryxb": {
                                                "doc_count_error_upper_bound": 0,
                                                "sum_other_doc_count": 0,
                                                "buckets": [
                                                    {
                                                        "key": "男",
                                                        "doc_count": 11
                                                    },
                                                    {
                                                        "key": "女",
                                                        "doc_count": 2
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "key": "立案",
                    "doc_count": 27,
                    "ajlxmc": {
                        "doc_count_error_upper_bound": 0,
                        "sum_other_doc_count": 0,
                        "buckets": [
                            {
                                "key": "刑事",
                                "doc_count": 27,
                                "rylxmc": {
                                    "doc_count_error_upper_bound": 0,
                                    "sum_other_doc_count": 0,
                                    "buckets": [
                                        {
                                            "key": "犯罪嫌疑人",
                                            "doc_count": 1,
                                            "ryxb": {
                                                "doc_count_error_upper_bound": 0,
                                                "sum_other_doc_count": 0,
                                                "buckets": [
                                                    {
                                                        "key": "男",
                                                        "doc_count": 1
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "key": "破案",
                    "doc_count": 10,
                    "ajlxmc": {
                        "doc_count_error_upper_bound": 0,
                        "sum_other_doc_count": 0,
                        "buckets": [
                            {
                                "key": "刑事",
                                "doc_count": 10,
                                "rylxmc": {
                                    "doc_count_error_upper_bound": 0,
                                    "sum_other_doc_count": 0,
                                    "buckets": [
                                        {
                                            "key": "犯罪嫌疑人",
                                            "doc_count": 2,
                                            "ryxb": {
                                                "doc_count_error_upper_bound": 0,
                                                "sum_other_doc_count": 0,
                                                "buckets": [
                                                    {
                                                        "key": "男",
                                                        "doc_count": 2
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "key": "销案",
                    "doc_count": 1,
                    "ajlxmc": {
                        "doc_count_error_upper_bound": 0,
                        "sum_other_doc_count": 0,
                        "buckets": [
                            {
                                "key": "刑事",
                                "doc_count": 1,
                                "rylxmc": {
                                    "doc_count_error_upper_bound": 0,
                                    "sum_other_doc_count": 0,
                                    "buckets": [
                                        
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        }
    }
}

 

你可能感兴趣的:(ELK,elasticsearch)