From ab35ac8b769b2d9816dffb33a64f2c6f7bd5dd6e Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 05 九月 2024 17:05:55 +0800 Subject: [PATCH] 风行网页版爬虫 --- src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java | 33 +++++++++++++++++++++++++-------- 1 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java b/src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java index 4a6ac8d..393671e 100644 --- a/src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java +++ b/src/main/java/com/yeshi/buwan/service/manager/search/SolrInternetSearchVideoDataManager.java @@ -99,10 +99,14 @@ Query query = null; if (!StringUtil.isNullOrEmpty(filter.getKey())) { //solr绮惧噯妫�绱㈤渶瑕佸甫寮曞彿 - try { - query = new SimpleQuery(new Criteria("nameStr").startsWith(key).or("actors").expression("\"" + key + "\"")); - } catch (InvalidDataAccessApiUsageException e) { - query = new SimpleQuery(new Criteria("name").expression("\""+key+"\"")); + if (filter.isFuzzy()) { + query = new SimpleQuery(new Criteria("name").expression(filter.getKey())); + } else { + try { + query = new SimpleQuery(new Criteria("nameStr").startsWith(key).or("actors").expression("\"" + key + "\"")); + } catch (InvalidDataAccessApiUsageException e) { + query = new SimpleQuery(new Criteria("name").expression("\"" + key + "\"")); + } } } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { @@ -119,14 +123,27 @@ } if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) { -// String[] rids=new String[filter.getResourceIds().size()]; -// filter.getResourceIds().toArray(rids); - query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds()))); + Criteria ors = null; + for (String rid : filter.getResourceIds()) { + if (ors == null) + ors = Criteria.where("resourceIds").contains(rid); + else + ors = ors.or("resourceIds").contains(rid); + } + query.addFilterQuery(new SimpleFilterQuery(ors)); } if (filter.getArea() != null) { query.addFilterQuery(new SimpleFilterQuery(Criteria.where("area").contains(filter.getArea()))); + } + + if (filter.getAreas() != null&&filter.getAreas().size()>0) { + Criteria criteria=Criteria.where("area").contains(filter.getAreas().get(0)); + for(int i=1;i<filter.getAreas().size();i++){ + criteria= criteria.or("area").contains(filter.getAreas().get(i)); + } + query.addFilterQuery(new SimpleFilterQuery(criteria)); } @@ -146,7 +163,7 @@ } public List<String> getSuggestKeyList(String key) { - Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*")); + Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*")); /** 璁剧疆鍒嗛〉寮�濮嬭褰曟暟(绗竴椤�) 榛樿0 */ query.setOffset(0); /** 璁剧疆姣忛〉鏄剧ず璁板綍鏁帮紝榛樿10 */ -- Gitblit v1.8.0