@@ -203,6 +203,115 @@ public class SearchCenterServiceImpl implements SearchCenterService {
return result ;
}
@Override
public List < Map < String , Object > > searchSarConditionBykeyTitle ( SeniorSearchInfoEO searchInfoEO ) throws Exception {
//判断是否高级查询 isHight = true( searchInfoEO.getIsHigh()为空)时,证明不是高级查询
boolean isHight = StringUtils . isBlank ( searchInfoEO . getIsHigh ( ) ) ;
List < Map < String , Object > > result = new ArrayList < > ( ) ;
SearchRequestBuilder searchRequestBuilder ;
BoolQueryBuilder boolQueryBuilder = QueryBuilders . boolQuery ( ) ;
BoolQueryBuilder boolQueryShould = QueryBuilders . boolQuery ( ) ;
BoolQueryBuilder boolQueryMust = QueryBuilders . boolQuery ( ) ;
updateIndex ( searchInfoEO . getSelectIndex ( ) ) ;
String sortField1 = " " ;
String sortField2 = " " ;
String sortField3 = " " ;
if ( " laws " . equals ( searchInfoEO . getSelectIndex ( ) ) ) {
sortField1 = " lawsNumber " ;
sortField2 = " lawsYear " ;
sortField3 = " lawsType.keyword " ;
} else {
sortField1 = " standNumber " ;
sortField2 = " standYear " ;
sortField3 = " standSort.keyword " ;
}
searchRequestBuilder = client . prepareSearch ( searchInfoEO . getSelectIndex ( ) )
. setSearchType ( SearchType . DFS_QUERY_THEN_FETCH )
. setFrom ( ( searchInfoEO . getPage ( ) - 1 ) * searchInfoEO . getPageSize ( ) )
. addSort ( new ScoreSortBuilder ( ) . order ( SortOrder . DESC ) )
. addSort ( " standSortOrder " , SortOrder . ASC )
. addSort ( sortField1 , SortOrder . ASC )
. addSort ( sortField2 , SortOrder . DESC )
. addSort ( sortField3 , SortOrder . ASC )
. addSort ( " issue_time_data " , SortOrder . DESC )
. setSize ( searchInfoEO . getPageSize ( ) ) ;
if ( StringUtils . isNotEmpty ( searchInfoEO . getSelectValue ( ) ) & & StringUtils . isBlank ( searchInfoEO . getIsHigh ( ) ) ) {
QueryBuilder multiQueryBuilder ;
switch ( searchInfoEO . getSelectIndex ( ) ) {
case " stand " :
boolQueryShould
. should ( QueryBuilders . wildcardQuery ( " standSort.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1005f ) )
. should ( QueryBuilders . termQuery ( " standNumber " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1004f ) )
. should ( QueryBuilders . wildcardQuery ( " standYear.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1003f ) )
. should ( QueryBuilders . wildcardQuery ( " nameshow.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1002f ) )
. should ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getSelectValue ( ) . toUpperCase ( ) + " * " ) . boost ( 1000f ) )
. should ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) . boost ( 999f ) ) ;
break ;
case " laws " :
boolQueryShould . should ( QueryBuilders . wildcardQuery ( " lawsNumber.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsNo.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsEnName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) ) ;
break ;
case " bussstand " :
boolQueryShould
. should ( QueryBuilders . wildcardQuery ( " standSort.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1005f ) )
. should ( QueryBuilders . termQuery ( " standNumber " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1004f ) )
. should ( QueryBuilders . wildcardQuery ( " standYear.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1003f ) )
. should ( QueryBuilders . wildcardQuery ( " nameshow.keyword " , searchInfoEO . getSelectValue ( ) . toUpperCase ( ) ) . boost ( 1002f ) )
. should ( QueryBuilders . wildcardQuery ( " stand_code.keyword " , " * " + searchInfoEO . getSelectValue ( ) . toUpperCase ( ) + " * " ) . boost ( 1000f ) )
. should ( QueryBuilders . wildcardQuery ( " stand_code.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) . boost ( 999F ) ) ;
break ;
default : break ;
}
}
if ( boolQueryShould ! = null ) {
boolQueryBuilder . must ( QueryBuilders . matchQuery ( " validFlag " , 0 ) ) ;
if ( StringUtils . isNotEmpty ( searchInfoEO . getSelectValue ( ) ) ) {
if ( StringUtils . isNotBlank ( searchInfoEO . getType ( ) ) ) {
boolQueryShould . must ( QueryBuilders . wildcardQuery ( " type.keyword " , " * " + searchInfoEO . getType ( ) + " * " ) ) ;
}
if ( StringUtils . isNotBlank ( searchInfoEO . getStandType ( ) ) & & StringUtils . isNotBlank ( searchInfoEO . getSelectIndex ( ) ) ) {
if ( searchInfoEO . getSelectIndex ( ) . equals ( " bussstand " ) ) {
boolQueryShould . must ( QueryBuilders . wildcardQuery ( " type.keyword " , " * " + searchInfoEO . getStandType ( ) + " * " ) ) ;
} else {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " standType.keyword " , " * " + searchInfoEO . getStandType ( ) + " * " ) ) ;
}
}
if ( StringUtils . isNotBlank ( searchInfoEO . getStandSort ( ) ) ) {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getStandSort ( ) + " " + " * " ) ) ;
}
if ( StringUtils . isNotBlank ( searchInfoEO . getTextStatus ( ) ) ) {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " textStatus.keyword " , " * " + searchInfoEO . getTextStatus ( ) + " * " ) ) ;
}
if ( StringUtils . isNotBlank ( searchInfoEO . getLawsSyqy ( ) ) ) {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " lawsSyqy.keyword " , " * " + searchInfoEO . getLawsSyqy ( ) + " * " ) ) ;
}
if ( StringUtils . isNotBlank ( searchInfoEO . getLawsSycx ( ) ) ) {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " lawsSycx.keyword " , " * " + searchInfoEO . getLawsSycx ( ) + " * " ) ) ;
}
boolQueryBuilder . must ( boolQueryShould ) ;
} else {
if ( " stand " . equals ( searchInfoEO . getSelectIndex ( ) ) & & StringUtils . isNotBlank ( searchInfoEO . getStandType ( ) ) ) {
boolQueryBuilder . must ( QueryBuilders . wildcardQuery ( " standType.keyword " , " * " + searchInfoEO . getStandType ( ) + " * " ) ) ;
}
boolQueryBuilder . must ( boolQueryShould ) ;
}
searchRequestBuilder . setQuery ( boolQueryBuilder ) . setTrackTotalHits ( true ) ;
// 获取查询到的结果
result = countStandSearchResult ( searchRequestBuilder , searchInfoEO ) ;
}
return result ;
}
// 条件
@Override
public List < Map < String , Object > > searchSarConditionBykey ( SeniorSearchInfoEO searchInfoEO ) throws Exception {
@@ -259,30 +368,16 @@ public class SearchCenterServiceImpl implements SearchCenterService {
RangeQueryBuilder rangeQueryBuilder = QueryBuilders . rangeQuery ( ISSUE_TIME ) . format ( EPOCH_MILLIS ) . from ( starttime ) . to ( endtime ) . includeLower ( true ) . includeUpper ( true ) ;
boolQueryShould . should ( rangeQueryBuilder ) ;
}
// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
boolQueryShould . should ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " stand_name.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " standEnName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) ) ;
break ;
case " laws " :
// boolQueryShould.should(QueryBuilders.wildcardQuery("lawsTypeName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("issueCompany.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsTextStateName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsYearName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsBulletin.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsLabel.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("lawsRemark.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
boolQueryShould . should ( QueryBuilders . wildcardQuery ( " lawsNumber.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsNo.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " lawsEnName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) ) ;
if ( isRqFormat ( searchInfoEO . getSelectValue ( ) ) ) {
Long starttime = dateFormatToStr ( searchInfoEO . getSelectValue ( ) ) . getTime ( ) ;
Long endtime = dateFormatToStr ( searchInfoEO . getSelectValue ( ) ) . getTime ( ) ;
@@ -295,12 +390,10 @@ public class SearchCenterServiceImpl implements SearchCenterService {
}
break ;
case " bussstand " :
// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
// .should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
boolQueryShould . should ( QueryBuilders . wildcardQuery ( " numbershow.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " stand_name.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " standEnName.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) )
. should ( QueryBuilders . wildcardQuery ( " nameshow.keyword " , " * " + searchInfoEO . getSelectValue ( ) + " * " ) ) ;
if ( isRqFormat ( searchInfoEO . getSelectValue ( ) ) ) {
Long starttime = dateFormatToStr ( searchInfoEO . getSelectValue ( ) ) . getTime ( ) ;
Long endtime = dateFormatToStr ( searchInfoEO . getSelectValue ( ) ) . getTime ( ) ;
@@ -798,14 +891,14 @@ public class SearchCenterServiceImpl implements SearchCenterService {
String [ ] lawsStr = null ;
String [ ] bussstandStr = null ;
if ( StringUtils . isNotBlank ( searchInfoEO . getSelectType ( ) ) & & " titleSearch " . equals ( searchInfoEO . getSelectType ( ) ) ) {
standStr = new String [ ] { " numbershow " , " nameshow " } ;
standStr = new String [ ] { " numbershow " , " nameshow " , " standNumber " } ;
lawsStr = new String [ ] { " lawsNo " , " lawsName " } ;
bussstandStr = new String [ ] { " numbershow " , " nameshow " } ;
} else {
standStr = new String [ ] { " content " , " standEnName " , " standNatureName " ,
standStr = new String [ ] { " standEnName " , " standNatureName " , " standNumber " ,
" textStatusName " , " isRelateAccessName " , " numbershow " , " nameshow " , " standSystem " , " NYLXCLASS " , " CLLX " } ;
lawsStr = new String [ ] { " content " , " lawsEnName " , " lawsName " , " lawsNo " , " issueCompany " , " lawsTextState " , " lawsSyqy " , " lawsSycx " , " isRelateAccess " , " lawsNotisyncNum " , " lawsBulletin " , " lawsLabel " , " lawsRemark " } ;
bussstandStr = new String [ ] { " content " , " stand_code " , " standEnName " , " nameshow " , " standstateshow " , " numbershow " , " textStatusBuss " , " textStatusBussName " , " NYLXCLASS " , " CLLX " } ;
lawsStr = new String [ ] { " lawsEnName " , " lawsName " , " lawsNo " , " issueCompany " , " lawsTextState " , " lawsSyqy " , " lawsSycx " , " isRelateAccess " , " lawsNotisyncNum " , " lawsBulletin " , " lawsLabel " , " lawsRemark " } ;
bussstandStr = new String [ ] { " stand_code " , " standEnName " , " nameshow " , " standstateshow " , " numbershow " , " textStatusBuss " , " textStatusBussName " , " NYLXCLASS " , " CLLX " } ;
for ( String field : fieldList ) {
// 关键字查询属性字段
String keyWordField2 = field + " Name " ;