提交 9175fb8b authored 作者: 董吉利's avatar 董吉利

增加了queryTunnelSDDM(隧道代码词条查询)和queryBridgeQLDM(桥梁代码词条查询)

上级 eac329d5
......@@ -233,7 +233,166 @@ public class EsUtil_fanshe {
}
return basebridgealldataList;
}
/**
* @Description: termquery()桥梁代码词条查询
* @Param:
* @return:
* @Author: dongjili
* @Date: 2019/5/10 0010
*/
public static ArrayList<Basebridgealldata> queryBridgeQLDM(String keyword, String index, String type, int start, int row) throws Exception {
// 搜索数据
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes(type).setFrom(start).setSize(row);
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
//multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
searchRequestBuilder.setQuery(QueryBuilders.termQuery("qiaoliangdaima",keyword));
}
String[] bridgeNames = {
"id",
"quhuadaima",
"quhuamingcheng",
"qiaoliangmingcheng",
"qiaoliangdaima",
"zhongxinzhuanghao",
"luxianbianma",
"luxianmingcheng",
"jishudengji",
"quanchang",
"kuajingzongchang",
"dankongzuidakuajing",
"qiaoliangquankuan",
"qiaomianjingkuan",
"kuajingfenleidaima",
"kuajingfenleileixing",
"nianxianfenleidaima",
"nianxianfenleileixing",
"yuanshangbujiegou1daima",
"yuanshangbujiegou1xingshi",
"yuanshangbujiegou2daima",
"yuanshangbujiegou2xingshi",
"shangbujiegoudaima",
"shangbujiegouxingshi",
"shangbujiegoucailiaodaima",
"shangbujiegoucailiaomingcheng",
"qiaodunleixingdaima",
"qiaodunleixingmingcheng",
"shejihezaidaima",
"shejihezaidengji",
"kangzhendengjidaima",
"kangzhendengji",
"kuayuediwudaima",
"kuayuediwuleixing",
"kuayuemingcheng",
"tonghangdengji",
"fangzhuangleixing",
"lijiaoleibie",
"jianshedanwei",
"shejidanwei",
"shigongdanwei",
"jianlidanwei",
"xiujianniandu",
"tongcheriqi",
"guanyangdaima",
"guanyangmingcheng",
"jianguandanweimingcheng",
"shoufeixingzhidaima",
"shoufeixingzhi",
"pingdingdengjidaima",
"pingdingdengji",
"pingdingdanwei",
"pingdingriqi",
"gaizaoniandu",
"wangongriqi",
"gaizaobuwei",
"gaizaoshigongdanwei",
"gongchengxingzhi",
"bubuxiangmu",
"binghaidaima",
"binghaibuwei",
"binghaimiaoshu",
"guanzhicuoshidaima",
"guanzhicuoshi",
"beizhu",
"zhuqiaokongshu",
"zhuqiaozhukua",
"zhuqiaobiankua",
"qianyinqiaochang",
"houyinqiaochang",
"qiaoxiajingkong",
"xiabujiegoudaima",
"xiabujiegoumingcheng",
"qiaotaidaima",
"qiaotaimingcheng",
"zhizuodaima",
"zhizuomingcheng",
"qiaomianpuzhuangdaima",
"qiaomianpuzhuangmingcheng",
"shensuofengdaima",
"shensuofengmingcheng",
"wanpoxiedaima",
"wanpoxiemingcheng",
"yuyingliqiao",
"zaixiuzaijian",
"zhadaomianji",
"shejihongshuipinlv",
"zongzaojia",
"maishezhuanghao",
"shifouzhadaoqiao",
"shifoushangkuaqiao",
"guanlidanweimingcheng",
"guanlidanweidaima",
"biangengyuanyindaima",
"biangengyuanyin",
"biangengshijian",
"xiangmuxingzhi",
"xiangmumingcheng",
"jihuaxiangmubianma",
"xiangmuleibie",
"xiangmudaima",
"xiangmuluxianbianma",
"xiangmuluxianmingcheng",
"xiangmuqiaoliangzhuanghao",
"xiangmubiangengyuanyin",
"xiangmubiangengshijian",
"touzilaiyuan",
"qiaoliangsuozaiweizhi",
"shifoukuanluzhaiqiao",
"shifouzaizhangdaqiaolaingmuluzhong",
"tianbaodanweimingcheng",
"shape",
"qiaokuazuhe"
};
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
ArrayList<Basebridgealldata> basebridgealldataList = new ArrayList<>();
for (SearchHit hit : hits) {
//System.out.println(hit.getSourceAsString());
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
//LuKeBridge luKeBridge = new LuKeBridge();
//获取该类在堆区的Class对象
Class<?> clazz = Class.forName("com.elephant.framework.galaxy.aroad.bigdata.Basebridgealldata");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
constructor.setAccessible(true);
//实例化对象
Basebridgealldata basebridgealldata = (Basebridgealldata) constructor.newInstance();
//获得私有的属性对象
Field[] beanFiled = clazz.getDeclaredFields();
basebridgealldata.setId(hit.getId());
for (int a = 1; a < bridgeNames.length; a++) {
//暴力破解
beanFiled[a].setAccessible(true);
//把查询到的每一个字段的值赋给luKeBridge的每一个属性
beanFiled[a].set(basebridgealldata, sourceAsMap.get(bridgeNames[a]) == null ? "" : sourceAsMap.get(bridgeNames[a]).toString());
}
basebridgealldataList.add(basebridgealldata);
}
return basebridgealldataList;
}
/**
* @Description: 桥梁字段查询查询出一条结果就返回
* @Param:
......@@ -668,7 +827,97 @@ public class EsUtil_fanshe {
}
return basetunnelalldataList;
}
/**
* @Description: termquery()隧道代码词条匹配查询
* @Param:
* @return:
* @Author: dongjili
* @Date: 2019/5/10 0010
*/
public static List<Basetunnelalldata> queryTunnelSDDM(String keyword, String index, String type, int start, int row) throws Exception {
//搜索数据
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes(type).setFrom(start).setSize(row);
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
//multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
searchRequestBuilder.setQuery(QueryBuilders.termQuery("suidaodaima",keyword));
}
String[] basicTunnelNames = {
"id",
"suidaomingcheng",
"suidaodaima",
"zhongxinzhuanghao",
"luxianbianma",
"luxianmingcheng",
"jishudengji",
"changdu",
"jingkuan",
"jinggao",
"changdufenleidaima",
"fenleimingcheng",
"shuixiasuidao",
"xiujianniandu",
"jianshedanwei",
"shejidanwei",
"shigongdanwei",
"jianlidanwei",
"tongcheshijian",
"shuidaoyanghudengji",
"guanyangdanweixingzhi",
"guanyangdanweimingcheng",
"jianguandanwei",
"pingdingdengji",
"pingdingriqi",
"pingdingdanwei",
"pingdingdengjitujian",
"pingdingriqitujian",
"pingdingdanweitujian",
"pingdingdengjijidian",
"pingdingriqijidian",
"pingdingdanweijidian",
"pingdingdengjiqita",
"pingdingriqiqita",
"pingdingdanweiqita",
"gaijianniandu",
"wangongriqi",
"gaizaibuwei",
"gongchengxingzhi",
"binghaibuwei",
"binghaimiaoshu",
"xianjizhengqudaima",
"shifouzaizhangdasuidaomuluzhong",
"beizhu",
"shape"
};
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basetunnelalldata> basetunnelalldataList = new ArrayList<>();
for (SearchHit hit : hits) {
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
//LuKeHighWay luKeHighWay = new LuKeHighWay();
//获取该类在堆区的Class对象
Class<?> clazz = Class.forName("com.elephant.framework.galaxy.aroad.bigdata.Basetunnelalldata");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
constructor.setAccessible(true);
//实例化对象
Basetunnelalldata basetunnelalldata = (Basetunnelalldata) constructor.newInstance();
//获取私有的属性字段
Field[] beanFiled = clazz.getDeclaredFields();
basetunnelalldata.setId(hit.getId());
for (int a = 1; a < basicTunnelNames.length; a++) {
//暴力破解
beanFiled[a].setAccessible(true);
//给路段属性复制
beanFiled[a].set(basetunnelalldata, sourceAsMap.get(basicTunnelNames[a]) == null ? "" : sourceAsMap.get(basicTunnelNames[a]).toString());
}
basetunnelalldataList.add(basetunnelalldata);
}
return basetunnelalldataList;
}
/**
* @Description: 隧道全字段查询,查询出一条就返回
* @Param:
......
package com.elephant.framework.galaxy.aroad.bigdata;
import java.util.List;
/**
* @program: pingxiang_basedata
* @description: ${description}
......@@ -15,20 +13,24 @@ public class ReadElasticsearch {
public static void createIndexAnd2Hbase() throws Exception {
//分词查询桥梁数据返回list集合
// List<Basebridgealldata> basebridgealldataList = EsUtil_fanshe.queryBridge("广州桥", "basebridgealldata", "2018", 0, 2000000000);
// for (Basebridgealldata basebridgealldata : basebridgealldataList) {
// System.out.println(basebridgealldata);
// }
//List<Basebridgealldata> basebridgealldataList = EsUtil_fanshe.queryBridge("广州桥", "basebridgealldata", "2018", 0, 2000000000);
//词条查询桥梁代码数据返回list集合
/*List<Basebridgealldata> basebridgealldataList = EsUtil_fanshe.queryBridgeQLDM("G3W371726L0012", "basebridgealldata", "2018", 0, 2000000000);
for (Basebridgealldata basebridgealldata : basebridgealldataList) {
System.out.println(basebridgealldata);
}*/
//分词查询路段数据返回list集合
//ArrayList<Basehighwayalldata> basehighwayalldataList = EsUtil_fanshe.queryHighWay("广州桥", "basehighwayalldata", "2018", 0, 2000000000);
//词条查询路线编号数据返回list集合
//ArrayList<Basehighwayalldata> basehighwayalldataList = EsUtil_fanshe.queryHighWayLXBH("S226", "basehighwayalldata", "2018", 0, 2000000000);
// for (Basehighwayalldata basehighwayalldata : basehighwayalldataList) {
// System.out.println(basehighwayalldata);
// }
/* for (Basehighwayalldata basehighwayalldata : basehighwayalldataList) {
System.out.println(basehighwayalldata);
}*/
//分词查询隧道数据返回list集合
//List<Basetunnelalldata> basetunnelalldataList = EsUtil_fanshe.queryTunnel("港沟", "basetunnelalldata", "2018", 0, 2000000000);
/*for (Basetunnelalldata basetunnelalldata : basetunnelalldataList) {
//termquery()隧道代码词条查询返回list集合
//List<Basetunnelalldata> basetunnelalldataList = EsUtil_fanshe.queryTunnelSDDM("S89370112U0010", "basetunnelalldata", "2018", 0, 2000000000);
/* for (Basetunnelalldata basetunnelalldata : basetunnelalldataList) {
System.out.println(basetunnelalldata);
}*/
//分词查询收费站数据返回list集合
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论