| | |
| | | import org.apache.solr.client.solrj.response.UpdateResponse; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.dao.InvalidDataAccessApiUsageException; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.solr.core.SolrTemplate; |
| | | import org.springframework.data.solr.core.query.Criteria; |
| | |
| | | Query query = null; |
| | | if (!StringUtil.isNullOrEmpty(filter.getKey())) { |
| | | //solr精准检索需要带引号 |
| | | query = new SimpleQuery(new Criteria("name").expression("\"" + filter.getKey() + "\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | if (filter.isFuzzy()) { |
| | | query = new SimpleQuery(new Criteria("name").expression(filter.getKey())); |
| | | } else { |
| | | try { |
| | | query = new SimpleQuery(new Criteria("nameStr").startsWith(filter.getKey()).or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | } catch (InvalidDataAccessApiUsageException e) { |
| | | query = new SimpleQuery(new Criteria("nameStr").expression("\""+filter.getKey()+"\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | } |
| | | } |
| | | } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { |
| | | query = new SimpleQuery(new Criteria("mainactor").expression("\"" + filter.getActor() + "\"")); |
| | | } else if (!StringUtil.isNullOrEmpty(filter.getDirector())) { |
| | |
| | | query.addFilterQuery(new SimpleFilterQuery(Criteria.where("free_type").is(filter.getFreeType()))); |
| | | } |
| | | |
| | | if (filter.getArea() != null) { |
| | | query.addFilterQuery(new SimpleFilterQuery(Criteria.where("area").contains(filter.getArea()))); |
| | | } |
| | | |
| | | |
| | | /** 设置分页开始记录数(第一页) 默认0 */ |
| | | query.setOffset((page - 1) * pageSize); |
| | |
| | | } |
| | | |
| | | public List<String> getSuggestKeyList(String key) { |
| | | Query query = new SimpleQuery("name:\"" + key + "\""); |
| | | Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*")); |
| | | /** 设置分页开始记录数(第一页) 默认0 */ |
| | | query.setOffset(0); |
| | | /** 设置每页显示记录数,默认10 */ |
| | | query.setRows(10); |
| | | |
| | | |
| | | ScoredPage<SolrAlbumVideo> result = solrTemplate.queryForPage(CORE_NAME, query, SolrAlbumVideo.class); |
| | | System.out.println("总记录数:" + result.getTotalElements()); |
| | | List<SolrAlbumVideo> list = result.getContent(); |