提交 82edd278 authored 作者: 董吉利's avatar 董吉利

elasticsearch中桥梁,路段,收费站,服务区,隧道排除结果为空,排除过滤空指针

上级 9c6e0a74
...@@ -792,7 +792,7 @@ public class EsUtil_fanshe { ...@@ -792,7 +792,7 @@ public class EsUtil_fanshe {
} }
} }
/** /**
* @Description: 桥梁查询最新年份的所有数据 * @Description:
* @Param: * @Param:
* @return: * @return:
* @Author: dongjili * @Author: dongjili
...@@ -855,8 +855,6 @@ public class EsUtil_fanshe { ...@@ -855,8 +855,6 @@ public class EsUtil_fanshe {
SearchHits hits = response.getHits(); SearchHits hits = response.getHits();
getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList); getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList);
totalHits = hits.getTotalHits(); totalHits = hits.getTotalHits();
}else {
return null;
} }
long finalTotalHits = totalHits; long finalTotalHits = totalHits;
...@@ -875,26 +873,30 @@ public class EsUtil_fanshe { ...@@ -875,26 +873,30 @@ public class EsUtil_fanshe {
*/ */
public static List<Basebridgealldata> queryBridgeQLDM(String keyword, String index, int start, int row) throws Exception { public static List<Basebridgealldata> queryBridgeQLDM(String keyword, String index, int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
MatchPhraseQueryBuilder qiaoliangdaima = QueryBuilders.matchPhraseQuery("qiaoliangdaima", keyword); String maxYear="";
searchRequestBuilder.setQuery(qiaoliangdaima).addSort("year", SortOrder.DESC); if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
String maxYear = getMaxYear(searchRequestBuilder); MatchPhraseQueryBuilder qiaoliangdaima = QueryBuilders.matchPhraseQuery("qiaoliangdaima", keyword);
searchRequestBuilder.setQuery(qiaoliangdaima).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
}
// 搜索数据 // 搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { List<Basebridgealldata> basebridgealldataList = new ArrayList<>();
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword) && maxYear!=null && !"".equals(maxYear)) {
//multiMatchQuery多个字段匹配某一个值 //multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔 //multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(qiaoliangdaima) .must(QueryBuilders.matchPhraseQuery("qiaoliangdaima", keyword))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)); .must(QueryBuilders.matchPhraseQuery("year", maxYear));
searchRequestBuilder.setQuery(boolQueryBuilder); searchRequestBuilder.setQuery(boolQueryBuilder);
String[] bridgeNames = getbridgeNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList);
} }
String[] bridgeNames = getbridgeNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basebridgealldata> basebridgealldataList = new ArrayList<>();
getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList);
return basebridgealldataList; return basebridgealldataList;
} }
...@@ -942,38 +944,43 @@ public class EsUtil_fanshe { ...@@ -942,38 +944,43 @@ public class EsUtil_fanshe {
public static Map<String, Object> queryHighWay(String keyword, String index,int start, int row) throws Exception { public static Map<String, Object> queryHighWay(String keyword, String index,int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilderStart = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilderStart = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
BoolQueryBuilder boolQueryBuilderStart = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilderStart = QueryBuilders.boolQuery()
.must(QueryBuilders.multiMatchQuery(keyword, "luxianbianhao", "luxianmingcheng")) .must(QueryBuilders.multiMatchQuery(keyword, "luxianbianhao", "luxianmingcheng"))
.mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "高速")) .mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "高速"))
.mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "等外")); .mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "等外"));
searchRequestBuilderStart.setQuery(boolQueryBuilderStart).addSort("year", SortOrder.DESC); searchRequestBuilderStart.setQuery(boolQueryBuilderStart).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilderStart);
} }
String maxYear = getMaxYear(searchRequestBuilderStart);
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").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(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
List<Basehighwayalldata> basehighwayalldataListGroup = null;
long totalHits=0;
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword) && maxYear!=null && !"".equals(maxYear)) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.multiMatchQuery(keyword, "luxianbianhao", "luxianmingcheng")) .must(QueryBuilders.multiMatchQuery(keyword, "luxianbianhao", "luxianmingcheng"))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)) .must(QueryBuilders.matchPhraseQuery("year", maxYear))
.mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "高速")) .mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "高速"))
.mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "等外")); .mustNot(QueryBuilders.matchPhraseQuery("dengjimingcheng", "等外"));
searchRequestBuilder.setQuery(boolQueryBuilder); searchRequestBuilder.setQuery(boolQueryBuilder);
String[] highwayNames = getHighWayNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
//分词查询结果的路段数据按照路线编号groupby,起点桩号aorderby
basehighwayalldataListGroup = GroupUtils.groupByProperty(basehighwayalldataList);
totalHits = hits.getTotalHits();
} }
String[] highwayNames = getHighWayNames(); long finalTotalHits = totalHits;
SearchResponse response = searchRequestBuilder.get(); List<Basehighwayalldata> finalBasehighwayalldataListGroup = basehighwayalldataListGroup;
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
//分词查询结果的路段数据按照路线编号groupby,起点桩号aorderby
List<Basehighwayalldata> basehighwayalldataListGroup = GroupUtils.groupByProperty(basehighwayalldataList);
return new HashMap<String, Object>() {{ return new HashMap<String, Object>() {{
put("total", hits.getTotalHits()); put("total",finalTotalHits);
put("list", basehighwayalldataListGroup); put("list", finalBasehighwayalldataListGroup);
}}; }};
} }
...@@ -987,17 +994,19 @@ public class EsUtil_fanshe { ...@@ -987,17 +994,19 @@ public class EsUtil_fanshe {
public static List<Basehighwayalldata> queryHighWayFiler(String lxbh,double zh, String index) throws Exception { public static List<Basehighwayalldata> queryHighWayFiler(String lxbh,double zh, String index) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad"); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad");
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(lxbh)&&org.apache.commons.lang.StringUtils.isNotBlank(String.valueOf(zh))) { if (org.apache.commons.lang.StringUtils.isNotBlank(lxbh)&&org.apache.commons.lang.StringUtils.isNotBlank(String.valueOf(zh))) {
BoolQueryBuilder boolqueryStart = QueryBuilders.boolQuery() BoolQueryBuilder boolqueryStart = QueryBuilders.boolQuery()
.must(QueryBuilders.matchPhraseQuery("luxianbianhao", lxbh)) .must(QueryBuilders.matchPhraseQuery("luxianbianhao", lxbh))
.must(QueryBuilders.rangeQuery("qidianzhuanghaoa").lte(zh)) .must(QueryBuilders.rangeQuery("qidianzhuanghaoa").lte(zh))
.must(QueryBuilders.rangeQuery("zhidianzhuanghao").gte(zh)); .must(QueryBuilders.rangeQuery("zhidianzhuanghao").gte(zh));
searchRequestBuilder.setQuery(boolqueryStart).addSort("year", SortOrder.DESC); searchRequestBuilder.setQuery(boolqueryStart).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
} }
String maxYear = getMaxYear(searchRequestBuilder);
//搜索数据 //搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(lxbh)&&org.apache.commons.lang.StringUtils.isNotBlank(String.valueOf(zh))) { List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
if (maxYear!=null && !"".equals(maxYear) && org.apache.commons.lang.StringUtils.isNotBlank(lxbh) && org.apache.commons.lang.StringUtils.isNotBlank(String.valueOf(zh))) {
//multiMatchQuery多个字段匹配某一个值 //multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔 //multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
BoolQueryBuilder boolquery = QueryBuilders.boolQuery() BoolQueryBuilder boolquery = QueryBuilders.boolQuery()
...@@ -1006,13 +1015,12 @@ public class EsUtil_fanshe { ...@@ -1006,13 +1015,12 @@ public class EsUtil_fanshe {
.must(QueryBuilders.rangeQuery("zhidianzhuanghao").gte(zh)) .must(QueryBuilders.rangeQuery("zhidianzhuanghao").gte(zh))
.must(QueryBuilders.matchPhraseQuery("year",maxYear)); .must(QueryBuilders.matchPhraseQuery("year",maxYear));
searchRequestBuilder.setQuery(boolquery); searchRequestBuilder.setQuery(boolquery);
String[] highwayNames = getHighWayNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
} }
String[] highwayNames = getHighWayNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
return basehighwayalldataList; return basehighwayalldataList;
} }
/** /**
...@@ -1024,26 +1032,27 @@ public class EsUtil_fanshe { ...@@ -1024,26 +1032,27 @@ public class EsUtil_fanshe {
*/ */
public static List<Basehighwayalldata> queryHighWayLXBH(String keyword, String index,int start, int row) throws Exception { public static List<Basehighwayalldata> queryHighWayLXBH(String keyword, String index,int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
MatchPhraseQueryBuilder luxianbianhao = QueryBuilders.matchPhraseQuery("luxianbianhao", keyword); MatchPhraseQueryBuilder luxianbianhao = QueryBuilders.matchPhraseQuery("luxianbianhao", keyword);
searchRequestBuilder.setQuery(luxianbianhao).addSort("year", SortOrder.DESC); searchRequestBuilder.setQuery(luxianbianhao).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
} }
String maxYear = getMaxYear(searchRequestBuilder);
//搜索数据 //搜索数据
//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(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
if (maxYear!=null && !"".equals(maxYear) && org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.matchPhraseQuery("luxianbianhao", keyword)) .must(QueryBuilders.matchPhraseQuery("luxianbianhao", keyword))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)); .must(QueryBuilders.matchPhraseQuery("year", maxYear));
searchRequestBuilder.setQuery(boolQueryBuilder); searchRequestBuilder.setQuery(boolQueryBuilder);
String[] highwayNames = getHighWayNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
} }
String[] highwayNames = getHighWayNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basehighwayalldata> basehighwayalldataList = new ArrayList<>();
getBaseHighWayAllDataList(highwayNames, hits, basehighwayalldataList);
return basehighwayalldataList; return basehighwayalldataList;
} }
...@@ -1087,29 +1096,33 @@ public class EsUtil_fanshe { ...@@ -1087,29 +1096,33 @@ public class EsUtil_fanshe {
*/ */
public static HashMap<String, Object> queryTunnel(String keyword, String index,int start, int row) throws Exception { public static HashMap<String, Object> queryTunnel(String keyword, String index,int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
MatchQueryBuilder suidaomingcheng = QueryBuilders.matchQuery("suidaomingcheng", keyword); MatchQueryBuilder suidaomingcheng = QueryBuilders.matchQuery("suidaomingcheng", keyword);
searchRequestBuilder.setQuery(suidaomingcheng).addSort("year", SortOrder.DESC); searchRequestBuilder.setQuery(suidaomingcheng).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
} }
String maxYear = getMaxYear(searchRequestBuilder);
//搜索数据 //搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { long totalHits=0;
List<Basetunnelalldata> basetunnelalldataList = new ArrayList<>();
if (maxYear!=null && !"".equals(maxYear) && org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
//multiMatchQuery多个字段匹配某一个值 //multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔 //multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
BoolQueryBuilder boolquery = QueryBuilders.boolQuery() BoolQueryBuilder boolquery = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("suidaomingcheng", keyword)) .must(QueryBuilders.matchQuery("suidaomingcheng", keyword))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)); .must(QueryBuilders.matchPhraseQuery("year", maxYear));
searchRequestBuilder.setQuery(boolquery); searchRequestBuilder.setQuery(boolquery);
String[] basicTunnelNames = getBasicTunnelNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseTunnelAllDataList(basicTunnelNames, hits, basetunnelalldataList);
totalHits = hits.getTotalHits();
} }
String[] basicTunnelNames = getBasicTunnelNames(); long finalTotalHits = totalHits;
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basetunnelalldata> basetunnelalldataList = new ArrayList<>();
getBaseTunnelAllDataList(basicTunnelNames, hits, basetunnelalldataList);
return new HashMap<String, Object>() {{ return new HashMap<String, Object>() {{
put("total", hits.getTotalHits()); put("total", finalTotalHits);
put("list", basetunnelalldataList); put("list", basetunnelalldataList);
}}; }};
} }
...@@ -1151,29 +1164,33 @@ public class EsUtil_fanshe { ...@@ -1151,29 +1164,33 @@ public class EsUtil_fanshe {
*/ */
public static HashMap<String, Object> queryBaseRoadTollString(String keyword, String index,int start, int row) throws Exception { public static HashMap<String, Object> queryBaseRoadTollString(String keyword, String index,int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("name", keyword); MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("name", keyword);
searchRequestBuilder.setQuery(matchQuery).addSort("year", SortOrder.DESC); searchRequestBuilder.setQuery(matchQuery).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
} }
String maxYear = getMaxYear(searchRequestBuilder);
//搜索数据 //搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { ArrayList<BaseRoadToll_String> baseRoadTollStrings = new ArrayList<>();
long totalHits=0;
if (maxYear!=null && !"".equals(maxYear) && org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
//multiMatchQuery多个字段匹配某一个值 //multiMatchQuery多个字段匹配某一个值
//multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔 //multiMatchQuery(text,fields)其中的fields是字段的名字,可以写好几个,每一个中间用逗号分隔
BoolQueryBuilder boolquery = QueryBuilders.boolQuery() BoolQueryBuilder boolquery = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("name", keyword)) .must(QueryBuilders.matchQuery("name", keyword))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)); .must(QueryBuilders.matchPhraseQuery("year", maxYear));
searchRequestBuilder.setQuery(boolquery); searchRequestBuilder.setQuery(boolquery);
String[] baseRoadTollNames = getBaseRoadTollNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseRoadTollStrings(baseRoadTollNames, hits, baseRoadTollStrings);
totalHits = hits.getTotalHits();
} }
String[] baseRoadTollNames = getBaseRoadTollNames(); long finalTotalHits = totalHits;
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
ArrayList<BaseRoadToll_String> baseRoadTollStrings = new ArrayList<>();
getBaseRoadTollStrings(baseRoadTollNames, hits, baseRoadTollStrings);
return new HashMap<String, Object>() {{ return new HashMap<String, Object>() {{
put("total", hits.getTotalHits()); put("total", finalTotalHits);
put("list", baseRoadTollStrings); put("list", baseRoadTollStrings);
}}; }};
} }
...@@ -1214,27 +1231,31 @@ public class EsUtil_fanshe { ...@@ -1214,27 +1231,31 @@ public class EsUtil_fanshe {
*/ */
public static HashMap<String, Object> queryBaseHighWayService(String keyword, String index,int start, int row) throws Exception { public static HashMap<String, Object> queryBaseHighWayService(String keyword, String index,int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row); SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
MatchQueryBuilder fwssmc = QueryBuilders.matchQuery("fwssmc", keyword); MatchQueryBuilder fwssmc = QueryBuilders.matchQuery("fwssmc", keyword);
searchRequestBuilder.setQuery(fwssmc).addSort("year", SortOrder.DESC); searchRequestBuilder.setQuery(fwssmc).addSort("year", SortOrder.DESC);
maxYear = getMaxYear(searchRequestBuilder);
} }
String maxYear = getMaxYear(searchRequestBuilder);
//搜索数据 //搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度) //isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) { List<BaseHighWayService> baseHighWayServices = new ArrayList<>();
long totalHits=0;
if (maxYear!=null && !"".equals(maxYear) && org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
BoolQueryBuilder boolquery = QueryBuilders.boolQuery() BoolQueryBuilder boolquery = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("fwssmc", keyword)) .must(QueryBuilders.matchQuery("fwssmc", keyword))
.must(QueryBuilders.matchPhraseQuery("year", maxYear)); .must(QueryBuilders.matchPhraseQuery("year", maxYear));
searchRequestBuilder.setQuery(boolquery); searchRequestBuilder.setQuery(boolquery);
String[] baseHighWayServiceNames = getBaseHighWayServiceNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseHighWayServices(baseHighWayServiceNames, hits, baseHighWayServices);
totalHits = hits.getTotalHits();
} }
String[] baseHighWayServiceNames = getBaseHighWayServiceNames(); long finalTotalHits = totalHits;
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<BaseHighWayService> baseHighWayServices = new ArrayList<>();
getBaseHighWayServices(baseHighWayServiceNames, hits, baseHighWayServices);
return new HashMap<String, Object>() {{ return new HashMap<String, Object>() {{
put("total", hits.getTotalHits()); put("total", finalTotalHits);
put("list", baseHighWayServices); put("list", baseHighWayServices);
}}; }};
} }
......
...@@ -15,6 +15,7 @@ import lombok.AllArgsConstructor; ...@@ -15,6 +15,7 @@ import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
...@@ -47,42 +48,49 @@ public class SzglController { ...@@ -47,42 +48,49 @@ public class SzglController {
case "路线": case "路线":
Baseindexdata lx = baseindexdataService.selectLatesByTableName("basehighwayalldata"); Baseindexdata lx = baseindexdataService.selectLatesByTableName("basehighwayalldata");
Map<String, Object> lukehighways = EsUtil_fanshe.queryHighWay(keyword, "basehighwayalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize()); Map<String, Object> lukehighways = EsUtil_fanshe.queryHighWay(keyword, "basehighwayalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basehighwayalldata basehighwayalldata : (List<Basehighwayalldata>) lukehighways.get("list")) { if(!ObjectUtils.isEmpty(lukehighways.get("list"))){
responseList.add(new HashMap<String, Object>() {{ for (Basehighwayalldata basehighwayalldata : (List<Basehighwayalldata>) lukehighways.get("list")) {
put("name", basehighwayalldata.getLuxianmingcheng()); responseList.add(new HashMap<String, Object>() {{
put("code", basehighwayalldata.getLuxianbianhao()); put("name", basehighwayalldata.getLuxianmingcheng());
put("iden", "luxian"); put("code", basehighwayalldata.getLuxianbianhao());
put("idenVal", "路线"); put("iden", "luxian");
put("data", basehighwayalldata); put("idenVal", "路线");
put("total", lukehighways.get("total")); put("data", basehighwayalldata);
}}); put("total", lukehighways.get("total"));
}});
}
} }
total += (long) lukehighways.get("total"); total += (long) lukehighways.get("total");
break; break;
case "桥梁": case "桥梁":
Baseindexdata ql = baseindexdataService.selectLatesByTableName("basebridgealldata"); Baseindexdata ql = baseindexdataService.selectLatesByTableName("basebridgealldata");
Map<String, Object> luKeBridges = EsUtil_fanshe.queryBridge(keyword, "basebridgealldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize()); Map<String, Object> luKeBridges = EsUtil_fanshe.queryBridge(keyword, "basebridgealldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basebridgealldata lnKeBridge : (List<Basebridgealldata>) luKeBridges.get("list")) { if(!ObjectUtils.isEmpty(luKeBridges.get("list"))){
responseList.add(new HashMap<String, Object>() {{ for (Basebridgealldata lnKeBridge : (List<Basebridgealldata>) luKeBridges.get("list")) {
put("name", lnKeBridge.getQiaoliangmingcheng()); responseList.add(new HashMap<String, Object>() {{
put("iden", "qiaoliang"); put("name", lnKeBridge.getQiaoliangmingcheng());
put("idenVal", "桥梁"); put("iden", "qiaoliang");
put("data", lnKeBridge); put("idenVal", "桥梁");
}}); put("data", lnKeBridge);
}});
}
} }
total += (long) luKeBridges.get("total"); total += (long) luKeBridges.get("total");
break; break;
case "隧道": case "隧道":
Baseindexdata sd = baseindexdataService.selectLatesByTableName("basetunnelalldata"); Baseindexdata sd = baseindexdataService.selectLatesByTableName("basetunnelalldata");
Map<String, Object> basicTunnels = EsUtil_fanshe.queryTunnel(keyword, "basetunnelalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize()); Map<String, Object> basicTunnels = EsUtil_fanshe.queryTunnel(keyword, "basetunnelalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basetunnelalldata basicTunnel : (List<Basetunnelalldata>) basicTunnels.get("list")) { if(!ObjectUtils.isEmpty(basicTunnels.get("list"))){
responseList.add(new HashMap<String, Object>() {{ for (Basetunnelalldata basicTunnel : (List<Basetunnelalldata>) basicTunnels.get("list")) {
put("name", basicTunnel.getSuidaomingcheng()); responseList.add(new HashMap<String, Object>() {{
put("iden", "suidao"); put("name", basicTunnel.getSuidaomingcheng());
put("idenVal", "隧道"); put("iden", "suidao");
put("data", basicTunnel); put("idenVal", "隧道");
put("total", basicTunnels.get("total")); put("data", basicTunnel);
}}); put("total", basicTunnels.get("total"));
}});
}
} }
total += (long) basicTunnels.get("total"); total += (long) basicTunnels.get("total");
break; break;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论