提交 0b7d7677 authored 作者: 董吉利's avatar 董吉利

增加1、路段分词查询所有数据代码(包括经纬度)2、不分词查询所有数据。

上级 821f57f5
...@@ -358,7 +358,7 @@ public class EsUtil_fanshe { ...@@ -358,7 +358,7 @@ public class EsUtil_fanshe {
* @Author: dongjili * @Author: dongjili
* @Date: * @Date:
*/ */
public static ArrayList<LuKeHighWay> queryHighWay(String keyword, String index, String type, int start, int row) throws Exception { /*public static ArrayList<LuKeHighWay> queryHighWay(String keyword, String index, String type, int start, int row) throws Exception {
//搜索数据 //搜索数据
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes(type).setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes(type).setFrom(start).setSize(row);
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
...@@ -490,6 +490,281 @@ public class EsUtil_fanshe { ...@@ -490,6 +490,281 @@ public class EsUtil_fanshe {
lukehighways.add(luKeHighWay); lukehighways.add(luKeHighWay);
} }
return lukehighways; return lukehighways;
}*/
/**
* @Description: 分词查询所有数据
* @Param:
* @return:
* @Author: dongjili
* @Date: 2019/5/9 0009
*/
public static ArrayList<Basehighwayalldata> queryHighWay(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.multiMatchQuery(keyword,
"id",
"luxianbianhao",
"luxianmingcheng",
"qidianmingcheng",
"zhidianmingcheng"
));
}
String[] highwayNames = {"id",
"luxianbianhao",
"quhuadaima",
"luxianmingcheng",
"qidianmingcheng",
"zhidianmingcheng",
"qidianzhuanghaoa",
"zhidianzhuanghao",
"licheng",
"lichengjisuan",
"sanDlicheng",
"dengjidaima",
"dengjimingcheng",
"chedaodaima",
"chedaofenlei",
"mianchengdaima",
"mianchengfenlei",
"lujikuandu",
"lumiankuandu",
"shejishisu",
"xiujianniandu",
"gaijianniandu",
"chengguanlu",
"duantoulu",
"chongfubianma",
"chongfuxuhao",
"qidianzhuanghaob",
"zhongdianzhuanghao",
"yanghulicheng",
"qingyulicheng",
"kelvhaolicheng",
"yilvhualicheng",
"dimaodaima",
"dimaohanzi",
"handongshuliang",
"maisheqidianzhuanghao",
"maishezhidianzhuanghao",
"quhuamingchengshi",
"quhuamingchengxian",
"quhuamingchengxiang",
"luduanxuhao",
"guanyangdanweileibie",
"beizhu",
"kaigongriqi",
"jungongriqi",
"qidianfenjiedianleixing",
"zhidianfenjiedianleixing",
"shengjichurukou",
"gbmlicheng",
"yangbanlicheng",
"tongcheriqi",
"luxiandifangmingcheng",
"jianshexingzhidaima",
"jianshexingzhihanzi",
"duanlianleixing",
"luduanleixingdaima",
"luduanleixing",
"guanyangdanweimingcheng",
"mqi",
"pingdingdengji",
"shoufeixingzhi",
"biangengyuanyindaima",
"biangengyuanyin",
"biangengshijian",
"xiangmuxingzhi",
"xiangmumingcheng",
"xiangmudaima",
"xiangmuqidianmingcheng",
"xiangmuzhidianmingcheng",
"xiangmuleibie",
"jihuaxiangmubianma",
"xiangmuluxianbianma",
"xiangmuluxianmingcheng",
"xiangmubiangengyuanyin",
"xiangmubiangengshijian",
"touzilaiyuan",
"miancenghoudu",
"zuijinyicidaxiuniandu",
"zuijinyicizhongxiuniandu",
"guodaotiaozhengqianluxianbianma",
"guodaozhuanghaochuandiyuliulicheng",
"nianpingjunrijiaotongliang",
"shifouanganxiangongluguanlijieyang",
"luxiantiaozhengleixing",
"shangnianluxianbianma",
"shangnianluxianmingcheng",
"shangnianluxianqidianzhuanghao",
"shangnianluxianzhidianzhuanghao",
"tianbaodanweimingcheng",
"shape"
};
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
ArrayList<Basehighwayalldata> basehighwayalldataList = 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.Basehighwayalldata");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
constructor.setAccessible(true);
//实例化对象
Basehighwayalldata basehighwayalldata = (Basehighwayalldata) constructor.newInstance();
//获取私有的属性字段
Field[] beanFiled = clazz.getDeclaredFields();
basehighwayalldata.setId(hit.getId());
for (int a = 1; a < highwayNames.length; a++) {
//暴力破解
beanFiled[a].setAccessible(true);
//给路段属性复制
beanFiled[a].set(basehighwayalldata, sourceAsMap.get(highwayNames[a]) == null ? "" : sourceAsMap.get(highwayNames[a]).toString());
}
basehighwayalldataList.add(basehighwayalldata);
}
return basehighwayalldataList;
}
/**
* @Description: 不分词查询所有数据
* @Param:
* @return:
* @Author: dongjili
* @Date: 2019/5/9 0009
*/
public static ArrayList<Basehighwayalldata> queryHighWayAll(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(去掉字符串两端的多余的空格的长度)
//multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
searchRequestBuilder.setQuery(QueryBuilders.matchAllQuery());
String[] highwayNames = {"id",
"luxianbianhao",
"quhuadaima",
"luxianmingcheng",
"qidianmingcheng",
"zhidianmingcheng",
"qidianzhuanghaoa",
"zhidianzhuanghao",
"licheng",
"lichengjisuan",
"sanDlicheng",
"dengjidaima",
"dengjimingcheng",
"chedaodaima",
"chedaofenlei",
"mianchengdaima",
"mianchengfenlei",
"lujikuandu",
"lumiankuandu",
"shejishisu",
"xiujianniandu",
"gaijianniandu",
"chengguanlu",
"duantoulu",
"chongfubianma",
"chongfuxuhao",
"qidianzhuanghaob",
"zhongdianzhuanghao",
"yanghulicheng",
"qingyulicheng",
"kelvhaolicheng",
"yilvhualicheng",
"dimaodaima",
"dimaohanzi",
"handongshuliang",
"maisheqidianzhuanghao",
"maishezhidianzhuanghao",
"quhuamingchengshi",
"quhuamingchengxian",
"quhuamingchengxiang",
"luduanxuhao",
"guanyangdanweileibie",
"beizhu",
"kaigongriqi",
"jungongriqi",
"qidianfenjiedianleixing",
"zhidianfenjiedianleixing",
"shengjichurukou",
"gbmlicheng",
"yangbanlicheng",
"tongcheriqi",
"luxiandifangmingcheng",
"jianshexingzhidaima",
"jianshexingzhihanzi",
"duanlianleixing",
"luduanleixingdaima",
"luduanleixing",
"guanyangdanweimingcheng",
"mqi",
"pingdingdengji",
"shoufeixingzhi",
"biangengyuanyindaima",
"biangengyuanyin",
"biangengshijian",
"xiangmuxingzhi",
"xiangmumingcheng",
"xiangmudaima",
"xiangmuqidianmingcheng",
"xiangmuzhidianmingcheng",
"xiangmuleibie",
"jihuaxiangmubianma",
"xiangmuluxianbianma",
"xiangmuluxianmingcheng",
"xiangmubiangengyuanyin",
"xiangmubiangengshijian",
"touzilaiyuan",
"miancenghoudu",
"zuijinyicidaxiuniandu",
"zuijinyicizhongxiuniandu",
"guodaotiaozhengqianluxianbianma",
"guodaozhuanghaochuandiyuliulicheng",
"nianpingjunrijiaotongliang",
"shifouanganxiangongluguanlijieyang",
"luxiantiaozhengleixing",
"shangnianluxianbianma",
"shangnianluxianmingcheng",
"shangnianluxianqidianzhuanghao",
"shangnianluxianzhidianzhuanghao",
"tianbaodanweimingcheng",
"shape"
};
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
ArrayList<Basehighwayalldata> basehighwayalldataList = 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.Basehighwayalldata");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
constructor.setAccessible(true);
//实例化对象
Basehighwayalldata basehighwayalldata = (Basehighwayalldata) constructor.newInstance();
//获取私有的属性字段
Field[] beanFiled = clazz.getDeclaredFields();
basehighwayalldata.setId(hit.getId());
for (int a = 1; a < highwayNames.length; a++) {
//暴力破解
beanFiled[a].setAccessible(true);
//给路段属性复制
beanFiled[a].set(basehighwayalldata, sourceAsMap.get(highwayNames[a]) == null ? "" : sourceAsMap.get(highwayNames[a]).toString());
}
basehighwayalldataList.add(basehighwayalldata);
}
return basehighwayalldataList;
} }
/** /**
* @Description: 路段全字段查询,查询出一条结果就返回 * @Description: 路段全字段查询,查询出一条结果就返回
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论