ElasticSearch嵌套查询以及注意事项


声明:本文转载自https://my.oschina.net/garlicts/blog/3053377,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

es实体 

@Data
@Document(indexName = "indexdemo", type = "typedemo", shards = 3, replicas = 1)
public class TmsWaybillEsEntity {
    /**
     * 主键id
     */
    @Id
    private Long id;

    private String waybillNo;

    private String orderNo;

    private Long orderId;

    @Field(type = FieldType.Nested)
    private List<TmsWaybillDispatcherInfoEsEntity> dispatcherBills;

}

 

@Data
public class TmsWaybillDispatcherInfoEsEntity {
    
    private Long dispatcherBillId;
    
    private String dispatcherBillNo;
    
    private Byte waybillType;
    
    private String snapDriverName;
   
    private String snapDriverPhone;
 
    private String snapTruckPlateNumber;

}

 

 

创建索引和映射

    public void createWaybillIndex(){

        if(waybillEsTemplate.indexExists(TmsWaybillEsEntity.class)){
            log.info("运单索引已经存在,无需创建");
        }else{
            boolean createResult = waybillEsTemplate.createIndex(TmsWaybillEsEntity.class);
            waybillEsTemplate.putMapping(TmsWaybillEsEntity.class);
            waybillEsTemplate.refresh(TmsWaybillEsEntity.class);
            log.info("创建运单索引的结果:{}", createResult);
        }

    }

 

嵌套查询,kibana --> Dev Tools

GET /indexdemo/typedemo/_search
{
	"query": {
		"bool": {
			"must": [{
					"term": {
						"companyId": {
							"value": 965006065496327513,
							"boost": 1.0
						}
					}
				},
				{
					"nested": {
						"query": {
							"bool": {
								"must": [{
									"wildcard": {
										"dispatcherBills.dispatcherBillNo.keyword": {
											"value": "*P101454019050700013*",
											"boost": 1.0
										}
									}
								}],
								"disable_coord": false,
								"adjust_pure_negative": true,
								"boost": 1.0
							}
						},
						"path": "dispatcherBills",
						"score_mode": "max", 
						"ignore_unmapped": false,
						"boost": 1.0
					}
				},
				{
					"nested": {
						"query": {
							"bool": {
								"must": [{
									"term": {
										"dispatcherBills.snapDriverName.keyword": {
											"value": "smxc",
											"boost": 1.0
										}
									}
								}],
								"disable_coord": false,
								"adjust_pure_negative": true,
								"boost": 1.0
							}
						},
						"path": "dispatcherBills",
						"score_mode": "max", 
						"ignore_unmapped": false,
						"boost": 1.0
					}
				}
			],
			"disable_coord": false,
			"adjust_pure_negative": true,
			"boost": 1.0
		}
	}

}

注意事项, 分片数量和副本数量要和运维的同事配置的一致。

 

本文发表于2019年05月24日 05:00
(c)注:本文转载自https://my.oschina.net/garlicts/blog/3053377,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2675 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1