admin
2021-07-30 19533a17aa55fafc70d0a385928e785cb50e1ebc
src/main/java/com/yeshi/buwan/service/manager/SolrAlbumVideoDataManager.java
@@ -18,6 +18,7 @@
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;
@@ -135,7 +136,15 @@
        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())) {
@@ -156,6 +165,10 @@
            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);
@@ -173,11 +186,13 @@
    }
    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();